如何在Node.JS程序中获取具有PID
(进程ID)的进程名称,平台包括Mac,Windows,Linux。
是否有一些节点模块可以做到?
答案 0 :(得分:42)
是的,内置/核心模块process
执行此操作:
所以,只需说var process = require('process');
然后
获取PID(进程ID):
if (process.pid) {
console.log('This process is your pid ' + process.pid);
}
获取平台信息:
console.log('This platform is ' + process.platform);
注意:您只能了解子进程或父进程的PID。
<小时/> 根据您的要求更新。 (在WINDOWS
上测试)
var exec = require('child_process').exec;
var yourPID = '1444';
exec('tasklist', function(err, stdout, stderr) {
var lines = stdout.toString().split('\n');
var results = new Array();
lines.forEach(function(line) {
var parts = line.split('=');
parts.forEach(function(items){
if(items.toString().indexOf(yourPID) > -1){
console.log(items.toString().substring(0, items.toString().indexOf(yourPID)));
}
})
});
});
在Linux
上,您可以尝试以下内容:
var spawn = require('child_process').spawn,
cmdd = spawn('your_command'); //something like: 'man ps'
cmdd.stdout.on('data', function (data) {
console.log('' + data);
});
cmdd.stderr.setEncoding('utf8');
cmdd.stderr.on('data', function (data) {
if (/^execvp\(\)/.test(data)) {
console.log('Failed to start child process.');
}
});
答案 1 :(得分:12)
在Ubuntu Linux上,我试过
var process = require('process'); but it gave error.
我试过没有导入任何有效的处理模块
console.log('This process is your pid ' + process.pid);
我注意到还有一件事我们可以使用
为流程定义名称process.title = 'node-chat'
使用以下命令检查bash shell中的nodejs进程
ps -aux | grep node-chat
答案 2 :(得分:0)
cf官方文档https://nodejs.org/dist/latest-v10.x/docs/api/process.html#process_process_pid
不再需要要求。 好的例子是:
console.log(`This process is pid ${process.pid}`);