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)
буду очень благодарен за помощь!