node.js应用程序,可以重新启动自己

Lor*_*eck 13 node.js

如何创建可以重启的应用程序?我想创建一个应用程序,设置一个可以重新启动的Web管理员.这可能吗?如果是这样,怎么样?我认为这可能与内置到节点中的流程模块有关.

小智 13

我已经多次运行Forever并且很容易上手.请查看:https://github.com/nodejitsu/forever


Har*_*wal 12

LK"我

没有外部依赖关系是可能的:

console.log("This is pid " + process.pid);
setTimeout(function () {
    process.on("exit", function () {
        require("child_process").spawn(process.argv.shift(), process.argv, {
            cwd: process.cwd(),
            detached : true,
            stdio: "inherit"
        });
    });
    process.exit();
}, 5000);
Run Code Online (Sandbox Code Playgroud)

来源:https://gist.github.com/silverwind/d0802f7a919ae86ff25e


小智 10

我知道回复有点迟,但我有类似的要求.每当我进行配置更改时,我都想重新启动节点进程.我正在使用pm2来管理我的节点进程,所以结果非常简单.

进行配置更改后,我从节点进程中执行process.exit().据我所知,进程退出然后pm2重启进程正常.

尚不确定是否有任何副作用,但它现在似乎对我很好.


Luk*_*kas 5

  1. 您可以使用子进程运行您的应用程序并根据需要操作它: https ://nodejs.org/api/child_process.html

  2. 使用forever,pm2或任何东西在死后重新启动并使用process.exit()杀死自己https://nodejs.org/api/process.html