gpt4 book ai didi

node.js - nodemon 停止不会停止 ubuntu 中的进程

转载 作者:太空宇宙 更新时间:2023-11-04 02:04:17 26 4
gpt4 key购买 nike

我在我的nodejs应用程序中使用nodemon来在更改应用时自动重新启动。但是当我在 ubuntu 环境中使用“Ctrl + C”停止nodemon时,不会停止nodejs。我必须搜索从端口运行的进程,并且必须使用kill -9 手动终止。我该如何解决这个问题?

最佳答案

快速但肮脏的解决方案

process.on('SIGTERM', stopHandler);
process.on('SIGINT', stopHandler);
process.on('SIGHUP', stopHandler);
function stopHandler() {
console.log('Stopped forcefully');
process.exit(0);
}

正确的解决方案

实现正常关机是最佳实践。在此示例中,我应该只停止服务器。如果服务器停止时间超过 2 秒,则进程将以退出代码 1 终止。

process.on('SIGTERM', stopHandler);
process.on('SIGINT', stopHandler);
process.on('SIGHUP', stopHandler);
async function stopHandler() {
console.log('Stopping...');

const timeoutId = setTimeout(() => {
process.exit(1);
console.error('Stopped forcefully, not all connection was closed');
}, 2000);

try {
await server.stop();
clearTimeout(timeoutId);
} catch (error) {
console.error(error, 'Error during stop.');
process.exit(1);
}
}

关于node.js - nodemon 停止不会停止 ubuntu 中的进程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44885081/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com