正在以根用户身份运行子进程。

问题描述 投票:1回答:2

我正在尝试使用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,它将杀死该子进程。

python subprocess sudo raspberry-pi4
2个回答
0
投票

使用x = str(return pid)subprocess.call(["sudo","kill","-9",x]),然后尝试授予root特权。并且,这允许将进程号转换为调用子进程的字符串before。另外,正如我提到的,请使用-9(如果愿意,可以使用-15)。 (也尝试杀死1014进程)。


0
投票

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

subprocess.call(["sudo","pkill","-9","-P",x])
© www.soinside.com 2019 - 2024. All rights reserved.