参数说明
spawn(command, args, options) command 字符串 需要运行的命令 args 可选 数组 命令需要的参数 options 可选 对象数组 开启子进程使用地选项 返回值:对象,子进程。参考ChildProcess options相关属性(可选): cwd:字符串,指定子进程工作目录,绝对或相对路径 stdio:字符串、数组(最多3个元素),设置子进程的标准输入输出 数组时有效值: 默认值:null、undefined 正整数:指定父进程被打开的文件描述符 pipe:在父进程与子进程之间创建管道,父进程通过ChildProcess对象方法,stdio[0]表示标准输入,stdio[1]表示标准输出,stdio[2]表示标准错误 ipc:在父进程与子进程之间创建一个传递消息或文件描述符的IPC通道 ignore:不为子进程设置文件描述符 Stream:对象,指定父进程与子进程共享一个终端设备、文件、端口、管道 inherit:父进程与子进程共享标准输入输出 注:1.字符串{stdio:"pipe"} 相等于设置数组{stdio:["pipe","pipe","pipe"]} 2.数组3个元素分别表示,标准输入、标准输出、标准错误 customFds: env:对象,指定子进程的环境变量 detached:布尔,默认false。true子进程为进程组领头进程,如果父进程不存在时,子进程可以独立存在 uid:数值,设置子进程的用户ID(非windows有效) gid:数组,设置子进程组ID(非windows有效)
示例
主进程:文件名 a.js
var cp = require("child_process");
var sp = cp.spawn("node", ["b.js"]); //开启子进程,运行b.js文件
sp.on("exit", function(code, signal){
console.log("子进程关闭");
});
sp.stdout.on("data", function(data){ //子进程标准输出需要父进程接收
console.log("接收到子进程消息:"+data);
});
子进程:文件名 b.js
process.stdout.write("www.liboke.cn"); //子进程,使用标准输出信息到父进程中