我正在尝试使用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
,它将杀死该子进程。
使用x = str(return pid)
和subprocess.call(["sudo","kill","-9",x])
,然后尝试授予root特权。并且,这允许将进程号转换为调用子进程的字符串before。另外,正如我提到的,请使用-9
(如果愿意,可以使用-15
)。 (也尝试杀死1014进程)。
[我发现我用x = return.pid
标识的主进程实际上运行了一个子进程,这是我需要杀死的子进程,因此从标识的父进程中,我们需要杀死一个子进程。在这种情况下,添加的“ -P”包括子进程。我需要以下命令结构:
subprocess.call(["sudo","pkill","-9","-P",x])