Здравствуйте, у меня есть сервер приложений, написанный на js и работающий на windows. Кроме того, я использую модуль pm2, но заметил, что когда я запускаю сервер приложений через pm2 start index.js -i 8
, а затем хочу остановить все процессы pm2 через pm2 stop all
, прослушиватели событий для SIGINT
полностью игнорируются ...
Я должен добавить, что это работает нормально, когда используется с простым узлом, а не с pm2. Итак, мне было интересно, я что-то упускаю здесь очевидное? Ниже приведен пример тестового источника: pm2 docs
const http = require('http');
const port = 3000
const requestHandler = (request, response) => {
response.end('Hello Node.js Server!');
}
const server = http.createServer(requestHandler);
server.listen(port, (err) => {
if (err) {
console.error(err);
} else {
console.log(`server is listening on ${port}`);
}
});
process.on('SIGINT', () => {
console.log('NIX SIGINT!!!');
process.exit(0);
});
process.on('message', (msg) => {
if (msg == 'shutdown') {
console.log('WIN SIGINT!!!');
process.exit(0)
} else {
console.log('msg:', msg);
}
});
Обновление:
Версии и ОС
OS: Windows
pm2 version: ^4.2.1
Nodejs version: v12.14.1
pm2 log
PM2 | App [grace:0] starting in -cluster mode-
PM2 | App [grace:0] online
0|grace | server is listening on 3000
PM2 | Stopping app:grace id:0
PM2 | App name:grace id:0 disconnected
PM2 | App [grace:0] exited with code [1] via signal [SIGINT]
PM2 | pid=10820 msg=process killed