PM2通过触发器在窗口中优雅停止

时间:2017-01-24 17:28:32

标签: triggers pm2

我在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中优雅地停止我的应用程序。

1 个答案:

答案 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"

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