Node-webkit如何执行外部命令?

5
如何在node-webkit(或node.js)外部进程中并行执行系统命令。
我尝试使用child_process。但是,当我的脚本被中断时,子进程也会退出。然而,我需要一种简单的方法来执行bash命令,不带输出或带有输出但不会在我的脚本被中断时停止程序。
我需要一个正确且简单的方法。
谢谢大家。
1个回答

10

使用detached选项在spawn/execute参数中:

如果设置了 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();

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接