node提供了child_process模块,允许你为主进程创建子进程,这样你就可以使用更多的服务器资源,使用更多的cpu,这些概念在前面的章节有介绍。node提供了child_process. spawn()和child_process. exec()为你实现这一功能,下面我们就单独介绍。
child_process.exec( )
我们来看exec的一个简单例子,他创建了一个子进程,第一个参数是一个shell命令,第二个参数是回调函数,处理返回结果。
var cp = require('child_process'); cp.exec('ls -l', function(e, stdout, stderr) { if(!e) { console.log(stdout); console.log(stderr); } });
exec()还可以传options的参数:
var options = { encoding: 'utf8', timeout: 0, maxBuffer: 200 * 1024, killSignal: 'SIGTERM', setsid: false, cwd: null, env: null }; var cp = require('child_process'); cp.exec('ls -l', options, function(e, stdout, stderr) { if(!e) { console.log(stdout); console.log(stderr); } });
encoding:I/O流的编码格式;
timeout:进程超时时间;
killSignal:当时间或者缓冲区超限时终止进程的信号;
maxBuffer:stdout或stderr可增长的最大值;
setsid:决定在进程中是否创建一个新的会话;
cwd:进程的初始工作目录,为null时表示使用node的当前工作目录;
env:进程的环境变量。
child_process.spawn( )
child_process.spawn( )比child_process.exec( )更加强大和灵活,例子如下:
var cp = require('child_process'); var cat = cp.spawn('cat'); cat.stdout.on('data', function(d) { console.log(d.toString()); }); cat.on('exit', function() { console.log('kthxbai'); }); cat.stdin.write('meow'); cat.stdin.end();
以上所述是小编给大家介绍的nodejs中的process进程,希望对大家有所帮助!
您可能感兴趣的文章: