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

时间:2013-01-18 01:04:11

标签: node.js pid platform-independent

有没有办法使用Node.js检查系统上的任意PID是运行还是活动?假设Node.js脚本具有读取/proc或Windows等效项的适当权限。

这可以同步完成:

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

或异步:

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

请注意,我希望找到一个适用于任意系统PID的解决方案,只是正在运行的Node.js进程的PID。

3 个答案:

答案 0 :(得分:17)

我还需要在项目中检查运行pid的情况。我使用kill -0 <PID> this answer并将其包装在名为正在运行 https://npmjs.org/package/is-running

的模块中

npm install is-running

答案 1 :(得分:15)

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

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

答案 2 :(得分:-1)

我不是这里的专家,但您是否可以使用命令行工具生成子进程来检查状态?