pm2 завершить/удалить задачу при возникновении непредвиденной ошибки

Я использую pm2 для запуски nodejs скрипта. Мне нужно чтобы после того как в скрипте возникает непредвиденная ошибка, он попросту завершал свою работу (вылетал). В идеале удалялся процесс из pm2

запускаю я скрипт так pm2 start app.js --name "myscript"

далее в коде я специально делаю ошибку, и после этого в pm2 logs я вижу что он фиксирует эту ошибку, но скрипт продолжает висеть в pm2 и там выполняются остальные функции (например setinterval тот же продолжает работать).

но если я запускаю этот же скрипт просто командой: node app то когда он доходит до моей ошибке - он тут же вылетает и все завершает свою работу.

тогда я в app.js добавил такой код, в надежде на то что он перехватит все непредвиденные ошибки и удалит команду из pm2

process.on('uncaughtException', async (error) => {
    console.error('Uncaught Exception!:', error);
    await telegram.send(
        `? uncaughtException: ${error.message}`
    );

    exec(`pm2 delete myscript`, (error, stdout, stderr) => {
        if (error) {
            console.error(`Ошибка выполнения команды: ${error}`);
            return;
        }
    });

    process.exit(0);
});

но pm2 даже не дает ему перехватить эту ошибку...

мне нужно чтобы скрипт запущенный через pm2 start app.js --name "myscript" при возникновении непредвиденной ошибки либо полностью вылетел (завершил работу), а в идеале чтобы удалился из pm2 (pm2 delete myscript)

буду очень благодарен за помощь!


Ответы (0 шт):