利用NodeJS的子进程(child

前端之家收集整理的这篇文章主要介绍了利用NodeJS的子进程(child前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
NodeJS子进程简介 NodeJS子进程提供了与系统交互的重要接口,其主要API有: 标准输入、标准输出及标准错误输出的接口。

NodeJS子进程简介

NodeJS 子进程提供了与系统交互的重要接口,其主要 API 有:

标准输入、标准输出及标准错误输出的接口
child.stdin 获取标准输入
child.stdout 获取标准输出
child.stderr 获取标准错误输出
获取子进程的PID:child.pid
提供生成子进程的重要方法:child_process.spawn(cmd,args=[],[options])
提供直接执行系统命令的重要方法:child_process.exec(cmd,[options],callback)
提供杀死进程的方法:child.kill(signal='SIGTERM')

实例一:利用子进程获取系统内存使用情况

将以下代码保存为 free.js:


var spawn = require('child_process').spawn,
free = spawn('free',['-m']);

// 捕获标准输出并将其打印到控制台
free.stdout.on('data',function (data) {
console.log('标准输出:\n' + data);
});

// 捕获标准错误输出并将其打印到控制台
free.stderr.on('data',function (data) {
console.log('标准错误输出:\n' + data);
});

// 注册子进程关闭事件
free.on('exit',function (code,signal) {
console.log('子进程已退出代码:' + code);
});


执行代码后的结果:

$ node free.js
标准输出
total used free shared buffers cached
Mem: 3949 1974 1974 0 135 959
-/+ buffers/cache: 879 3070
Swap: 3905 0 3905

子进程已退出代码:0
以上输出相当与在命令行执行:free -m 命令。

通过这个简单的例子我们已经对子进程的使用有所了解,下面再来一个示例,用于演示exec 的使用方法

实例二:利用子进程统计系统登录次数

将下面代码保存为 last.js


var exec = require('child_process').exec,
last = exec('last | wc -l');

last.stdout.on('data',function (data) {
console.log('标准输出:' + data);
});

last.on('exit',function (code) {
console.log('子进程已关闭代码:' + code);
});

执行代码

$ node last.js
标准输出:203

子进程已关闭代码:0
其与直接在命令行输入:last | wc -l 的结果是一样的。

猜你在找的Web前端相关文章