gpt4 book ai didi

linux - 如何正确杀死 child_process ?

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:48:22 25 4
gpt4 key购买 nike

在 atom-text-editor 插件开发中,我运行一个 child_process,如

cp = require 'child_process'
command = "python /home/user45/jedi-python2-complete.py"
@jediServer = cp.exec command

然后我像这样终止进程,

process.kill(@jediServer.pid)

在 ubuntu-os 中创建了两个进程 sh 和 python(jedi-python2-complete.py) 但在 fedora 中只创建了一个进程 (jedi-python2-complete.py)。

当我尝试使用 process.kill 在 ubuntu 中终止进程时,只有 sh-process 被终止,但 python 进程仍在后台运行..,而在 fedora 中,python 进程被终止。

例如,在 Ubuntu 中, sh pid-3560 python pid-3561

在 fedora 中 python-process pid- 3560

我比较试过这样解决它,

process.kill(pid)
process.kill(pid+1)

但是还有其他方法吗,linux 操作系统通用。

最佳答案

您最好使用 Atom 对名为 BufferedProcess 的 child_process 的包装器.如果您使用他们自己的 .kill 方法,它将在 Windows 上正确终止进程。

您可以在这个 autocomplete-python 中查看如何使用它包源。

关于linux - 如何正确杀死 child_process ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34407593/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com