参数说明
exec(command, options, callback) command 字符串 需要运行的命令,参数使用空格隔开 options 可选 对象数组 开启子进程使用的选项 callback( 可选 回调函数 子进程终止,调用 error, 子进程异常终止触发,获取异常码:error.code,获取强制关闭信号:error.signal stdout, 子进程标准输出对象 stderr 子进程标准错误对象 ) 返回值:对象,子进程 options相关属性: cwd:字符串,默认null,指定子进程工作目录,绝对或相对路径 env:对象数组,默认nill,指定子进程的环境变量键值对 encoding:字符串,默认utf8,指定标准输出、标准错误的编码格式 tmeout:整数,默认0不限制运行时间,指定子进程运行时间,单位毫秒 maxbuffer:整数,默认200*1024,设置子进程标准输出缓存大小,大于该值子进程将强制关闭字符出啊 killSignal:字符串,默认"SIGTERM",指定关闭子进程的信号 shell :字符串,将要执行命令的 Shell uid:数字,设置用户进程的 ID(非windows有效) gid:数字,设置进程组的 ID(非windows有效) 注: 1.spawn()是实时接收子进程标准输出,属于异步方法。 2.exec()需子进程标准输出缓存完毕后才能接收,属于同步方法
示例
主进程:文件名 a.js
var cp = require("child_process");
var ex = cp.exec("node b.js", function(err, stdout, stderr){
if(err){
console.log("子进程开启失败" + err);
process.exit(); //关闭主进程
}else{
console.log("收到子进程消息:" + stdout);
}
});
ex.stdin.write("www.liboke.cn"); //向子进程标准输入,写入信息
子进程:文件名 b.js
process.stdin.on("data", function(data){ //接收控制台输入
process.stdout.write("子进程收到:"+data); //输出信息到控制台
process.exit(0); //关闭进程
});