如何检查一个任意PID是否正在使用Node.js运行?

有什么办法来检查是否一个任意的PID在系统上运行或活着,使用Node.js? 假设Node.js脚本具有读取/proc或Windows等效的适当权限。

这可以同步完成:

 if (isAlive(pid)) { //do stuff } 

或asynchronous:

 getProcessStatus(pid, function(status) { if (status === "alive") { //do stuff } } 

请注意,我希望find一个适用于任意系统PID的解决scheme, 不仅仅是正在运行的Node.js进程的PID。

我也需要检查项目中运行的pid。 我采用了kill -0 <PID> 这个答案 ,并将其包装在一个名为is-running的模块中https://npmjs.org/package/is-running

npm install is-running

好像你可以调用process.kill(pid,0),并将其封装在try / catch中。

http://nodejs.org/api/process.html#process_process_kill_pid_signal – “如果目标不存在,会抛出一个错误,并且作为特殊情况,可以使用0的信号来testing进程的存在。

我不是这里的专家,但是你能不能产生一个subprocess来检查命令行工具的状态?

Interesting Posts