我在Windows中使用PM2,想要优雅地停止应用。在我的js代码中,我有这个:
const pmx = require("pmx"); //
pmx.action("sigterm",(reply) => {
stop(
() => reply({success:true }),
() => reply({success:false}))
})
如果我像这样开始我的脚本:
pm2 start MyScript.js --name MyScript
然后当我调用它时,当前运行的实例非常优雅地关闭:
pm2 trigger MyScript sigterm
当然,PM2尽职尽责地启动了一个新实例,必须非常不合理地关闭:
pm2 stop MyScript
[insert sound of un-closed resources crashing here.]
在调用pm2 stop
时,有没有办法让PM2发送触发器?
--no-autorestart
,但这不是我想要的,因为我做希望PM2在崩溃时重启进程。我只是想在Windows中优雅地停止我的应用程序。
答案 0 :(得分:0)
我已经确定了这个问题:
// PM2 initiated shutdown
pmx.action("stop",(my_name,reply) => {
graceful_shutdown().then{ () => {
reply({success:true });
fs.execSync("pm2 stop " +my_name);
process.exit();
}).catch(() => reply({success:false}))
})
结合
> pm2 trigger MyScript stop "MyScript"
但我渴望听到更好的解决方案。