gpt4 book ai didi

python - os.kill 不处理生成的进程

转载 作者:太空狗 更新时间:2023-10-30 00:10:36 28 4
gpt4 key购买 nike

我已经编写了自己的基于 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()
...

我想从另一个 python session 运行中获取这个输出的 pid(例如 3064):

import os, signal    
os.kill(3064, signal.SIGTERM)

os.kill 如果我在父进程/生成进程的 pid 上运行它,它会起作用,但如果我在子进程/生成进程的 pid 上运行它,它就不起作用。除了 SIGTERM 之外,我还尝试了一些其他信号,例如 SIGKILL、SIGQUIT 等。它们都没有用。任何帮助将不胜感激。

最佳答案

我通过使用 subprocess 模块创建进程并使用 os.killpg() 杀死进程来解决这个问题,如下所述:https://stackoverflow.com/a/4791612/2636544

关于python - os.kill 不处理生成的进程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28745568/

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