Wes*_*Wes 6 python multiprocessing kill-process
我编写了自己的基于Python的作业调度程序,它使用多处理模块来生成新的作业.我正在尝试使用一种功能来杀死正在运行的进程os.kill,但它无法正常工作.我的(简化)代码如下所示:
from multiprocessing import Process
import os
...
p = Process(target=self.start_job, args=(run_dir,cmd,))
p.start()
...
def start_job(self,run_dir,cmd):
os.chdir(run_dir)
os.system(cmd)
print os.getpid()
...
Run Code Online (Sandbox Code Playgroud)
我想把这个输出的pid(例如3064)和另一个python会话运行:
import os, signal
os.kill(3064, signal.SIGTERM)
Run Code Online (Sandbox Code Playgroud)
os.kill如果我在父/产生进程的pid上运行它,它会起作用,但如果我在子/生成进程的pid上执行它,它就不起作用.除了SIGTERM,我还尝试了许多其他信号,如SIGKILL,SIGQUIT等.它们都没有工作.任何帮助将不胜感激.
我通过使用subprocess模块创建进程组来创建进程并使用os.killpg()杀死进程来解决这个问题,如下所述:https : //stackoverflow.com/a/4791612/2636544
| 归档时间: |
|
| 查看次数: |
9613 次 |
| 最近记录: |