1

我试图通过使用 subprocess.call() 来通过它的 pid 杀死一个子进程。我通过将 return 分配给这样的值来获得 pid:

return = subprocess.Popen(["sudo", "scrolling-text-example", "-y7"]) 
x= return.pid

当我准备好结束这个子流程时,我正在使用以下代码:

subprocess.call(["sudo","kill",str(x)])

这不会杀死子进程,但如果我打开终端(假设 x 是 1234)并输入:sudo kill 1234,它将杀死子进程。

4

2 回答 2

0

我发现我识别的主进程x = return.pid实际上运行了一个我需要杀死的子进程,因此从识别的父进程中,我们需要杀死一个子进程。在这种情况下,添加“-P”包括子进程。以下命令结构是我需要的:

subprocess.call(["sudo","pkill","-9","-P",x])
于 2020-03-02T19:04:34.470 回答
0

使用x = str(return pid)然后subprocess.call(["sudo","kill","-9",x])尝试授予 root 权限。并且,这允许在调用子进程之前将进程号转换为字符串。另外,正如我所提到的,使用-9(或者-15如果您更喜欢使用它)。(也尝试杀死 1014 进程)。

于 2020-02-28T01:29:32.893 回答