Triggers PM2通过触发器在windows中正常停止

Triggers PM2通过触发器在windows中正常停止,triggers,pm2,Triggers,Pm2,我正在windows中使用PM2,希望优雅地停止应用程序。在我的js代码中,我有: const pmx = require("pmx"); // pmx.action("sigterm",(reply) => { stop( () => reply({success:true }), () => reply({success:false})) }) 如果我像这样开始我的脚本: pm2 start MyScrip

我正在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发送触发器


顺便说一句,我确实知道
——没有自动重新启动
,但这不是我想要的,因为我确实希望PM2在崩溃时重新启动进程。我只想找到一种在windows中优雅地停止我的应用程序的方法。

我已经解决了这个问题:

// 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"

但我渴望听到更好的解决方案。

+1我正在寻求更好的解决方案。我觉得这种方法是错误的,因为如果我使用pm2来启动python脚本,python就不理解pmx。