5

如何在当前脚本的 node-webkit(或 node.js)外部进程并行中执行系统命令。

我正在尝试使用 child_process。在我的脚本子进程中断后退出。但是,当我的脚本将被中断时,我需要一种简单的方法来执行没有输出或有输出但没有程序停止的 bash 命令。

我需要一个正确的简单方法。

谢谢大家。

4

1 回答 1

10

detached在生成/执行参数中使用选项:

如果设置了分离选项,则子进程将成为新进程组的领导者。这使得子进程可以在父进程退出后继续运行。

默认情况下,父级将等待分离的子级退出。要防止父级等待给定的子级,请使用 child.unref() 方法,并且父级的事件循环不会将子级包含在其引用计数中。

分离长时间运行的进程并将其输出重定向到文件的示例:

 var fs = require('fs'),
     spawn = require('child_process').spawn,
     out = fs.openSync('./out.log', 'a'),
     err = fs.openSync('./out.log', 'a');

 var child = spawn('prg', [], {
   detached: true,
   stdio: [ 'ignore', out, err ]
 });

 child.unref();
于 2013-10-29T20:41:04.363 回答