如何在node.js(而不是child)中启动一个全新的进程?

时间:2014-03-11 19:55:49

标签: javascript node.js

我在启动进程时遇到的唯一答案是使用名为child_process的东西。但我想生成一个完全独立于当前运行节点进程的全新进程,这可能吗?

3 个答案:

答案 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"命令,即使父进程死亡,也能使生成的进程保持活动状态。