有没有办法使用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。
答案 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)
我不是这里的专家,但您是否可以使用命令行工具生成子进程来检查状态?