我正在使用 python 多处理库来创建新进程。父进程需要识别子进程,以便它可以随时停止特定进程。我可以给一个进程命名,但是否有可能获得一个进程处理程序,以便稍后使用名称停止它?
最佳答案
看来您正在寻找 terminate() multiprocessing.Process 上的方法实例。
Process 的一些方法的用法示例:
>>> import multiprocessing, time, signal
>>> p = multiprocessing.Process(target=time.sleep, args=(1000,))
>>> print(p, p.is_alive())
<Process(Process-1, initial)> False
>>> p.start()
>>> print(p, p.is_alive())
<Process(Process-1, started)> True
>>> p.terminate()
>>> time.sleep(0.1)
>>> print(p, p.is_alive())
<Process(Process-1, stopped[SIGTERM])> False
>>> p.exitcode == -signal.SIGTERM
True
如果您试图通过名称获取事件进程,您可以使用以下函数:
def get_process(name):
return next((p for p in multiprocessing.active_children() if p.name == name), None)
关于python - 使用python多处理库进行进程识别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32011855/