如何检查一个任意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来检查命令行工具的状态?