大家好,A进程用multiprocessing起了一个进程B,然后A断了,停了,怎么找B呢?-灵析社区

七安前

A用multiprocessing起了一个进程B,然后A断了,停了,怎么找B呢?

阅读量:412

点赞量:15

问AI
from multiprocessing import Process import os def f(name): print('hello', name) if __name__ == '__main__': p = Process(target=f, args=('bob',)) p.start() # 保存进程B的PID with open("process_b.pid", "w") as file: file.write(str(p.pid)) # 假设这个地方A进程停止了 用kill命令来停止进程B kill $(cat process_b.pid) 用进程组: import os from multiprocessing import Process def f(name): os.setpgid(0, 0) print('hello', name) if __name__ == '__main__': p = Process(target=f, args=('bob',)) p.start() with open("process_b_gid", "w") as file: file.write(str(os.getpgid(p.pid))) # 假设这里A进程停止了 用kill命令来停止进程B组 kill -- -$(cat process_b_gid) 没提前写的话: 用命令行工具: ps aux | grep '进程B的一些特征' 或者用第三方库: pip install psutil` 然后: import psutil for proc in psutil.process_iter(['pid', 'name', 'cmdline']): if '进程B的一些特征' in proc.info['name'] or '进程B的一些特征' in str(proc.info['cmdline']): print(f"找到进程B: PID={proc.info['pid']}")