我在启动进程时遇到的唯一答案是使用名为child_process的东西。但我想生成一个完全独立于当前运行节点进程的全新进程,这可能吗?
答案 0 :(得分:3)
您可以在分离状态下生成子进程,忽略输出,并使用child.unref()
从父事件循环中删除子进程。
此代码将启动someScript.sh
,并在保持someScript.sh
运行时退出。
var spawn = require('child_process').spawn;
var child = spawn(__dirname + '/someScript.sh', [], {
detached: true ,
stdio: [ 'ignore', 'ignore', 'ignore' ]
});
child.unref();
有关更详细的信息和替代方案(例如日志输出/等),请查看spawn
的文档。还有其他例子:
http://nodejs.org/api/child_process.html#child_process_child_process_spawn_command_args_options
答案 1 :(得分:0)
Haven没有太多的信息,但它似乎是子进程的spawn,exec或fork选项。另一个选项是共享端口,这两个选项在此进一步阐明:http://craigbrookes.com/2012/03/17/multiple-processes-in-nodejs/
答案 2 :(得分:0)
您可以使用原生提供的子流程工具:http://nodejs.org/api/child_process.html
使用unix" nohup"命令,即使父进程死亡,也能使生成的进程保持活动状态。