如何从代码中重新启动Node.js服务器?例如,如果使用expressjs框架,
app.get('/restart', function (req, res, next) {
//Code to restart a server
})
我想通过应用程序这样重新启动服务器,而不需要进入控制台等等。如何做到?
如何从代码中重新启动Node.js服务器?例如,如果使用expressjs框架,
app.get('/restart', function (req, res, next) {
//Code to restart a server
})
我想通过应用程序这样重新启动服务器,而不需要进入控制台等等。如何做到?
我使用forever
来启动和监控应用程序。
因此,重新启动功能如下:
app.get('/restart', function (req, res, next) {
process.exit(1);
});
服务器关闭后,forever
将重新启动服务。
控制台输出:
Express服务器在开发模式下监听端口3000 错误:Forever检测到脚本退出代码为1 错误:Forever正在第2次重启脚本 Express服务器在开发模式下监听端口3000。
npm restart
和 child_process.exec()
,似乎可以以编程方式重新启动服务器。由于它允许运行多个脚本来停止、重启和启动服务器,因此即使是多进程服务器或其他复杂的服务器,在简单调用 process.exit()
不可行的情况下,这个选项也可以起作用。child_process
的重点在于它是一个子进程,关闭父进程也会关闭子进程,因此您不能让子进程重新启动父进程。 - undefined您可以将子进程标记为detached,我相信这会使其在父进程销毁后继续存在。因此,如果您在命令的开头使用“sleep”命令(以防并发运行出现问题),那么它应该可以工作。
因此,大概像这样(未经测试):
const newProcessInstance = spawn(process.argv[0], process.argv.slice(1), {
detached: true,
stdio: 'ignore', // not sure if this is needed
});
forever
崩溃或挂起时监视和重新启动它呢? - JustAMartin