欢迎来到代码驿站!

JavaScript代码

当前位置:首页 > 网页前端 > JavaScript代码

利用NodeJS的子进程(child_process)调用系统命令的方法分享

时间:2021-04-11 08:56:24|栏目:JavaScript代码|点击:
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 的结果是一样的。

上一篇:bootstrap日期控件问题(双日期、清空等问题解决)

栏    目:JavaScript代码

下一篇:pace.js和NProgress.js两个加载进度插件的一点小总结

本文标题:利用NodeJS的子进程(child_process)调用系统命令的方法分享

本文地址:http://www.codeinn.net/misctech/99047.html

推荐教程

广告投放 | 联系我们 | 版权申明

重要申明:本站所有的文章、图片、评论等,均由网友发表或上传并维护或收集自网络,属个人行为,与本站立场无关。

如果侵犯了您的权利,请与我们联系,我们将在24小时内进行处理、任何非本站因素导致的法律后果,本站均不负任何责任。

联系QQ:914707363 | 邮箱:codeinn#126.com(#换成@)

Copyright © 2020 代码驿站 版权所有