利用NodeJS的子进程(child_process)调用系统命令的方法分享_Javascript教程-查字典教程网
利用NodeJS的子进程(child_process)调用系统命令的方法分享
利用NodeJS的子进程(child_process)调用系统命令的方法分享
发布时间:2016-12-30 来源:查字典编辑
摘要:NodeJS子进程简介NodeJS子进程提供了与系统交互的重要接口,其主要API有:标准输入、标准输出及标准错误输出的接口。NodeJS子进...

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 的结果是一样的。

相关阅读
推荐文章
猜你喜欢
附近的人在看
推荐阅读
拓展阅读
  • 大家都在看
  • 小编推荐
  • 猜你喜欢
  • 最新Javascript教程学习
    热门Javascript教程学习
    编程开发子分类