繁体   English   中英

如何从另一个 node.js 进程中杀死一个 node.js 进程?

[英]how do I kill a node.js process from another node.js process?

我正在尝试从另一个 node.js 进程运行 scripts/node.js 进程。 我想出了如何使用child_process.spawn()启动它们,并且我从中获得了 PID,但我不知道如何杀死它们。 使用child_process.exec()运行taskkill即使使用/F也不起作用,即使它说“task-killing”成功,node.js 窗口仍在运行。 我什至尝试过 powershell 的stop-process ,但这也不起作用。 我该如何杀死它? (来自 node.js)

编辑:

process.kill(pid,15)process.kill(pid,9)都以:

错误:kill ESRCH errno:-4040,代码:'ESRCH',系统调用:'kill'

NodeJS 在全局process对象中有一个名为kill的方法, kill接受一个PID (进程 ID)和一个可选的SIGNAL (杀死信号)发送到由PID标识的进程。

这是如何使用它

process.kill(pid, SIGNAL) -> SIGNAL 是可选的。

假设进程 id 为 1000

process.kill(1000) ,不指定信号会自动发送SIGTERM到进程 id 1000。

需要注意的是, SIGNAL也可以是数字, SIGTERM的数字值为15 信号编号

例如,您可以这样做。

process.kill(1000, 15)process.kill(1000, 'SIGTERM') -> 向进程 id 1000 发送终止信号

process.kill(1000, 9)process.kill(1000, 'SIGKILL') -> 向进程 id 1000 发送终止信号

process.kill 上的文档

pid不存在时,nodejs 进程将抛出ESRCH

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM