大家好,A进程用multiprocessing起了一个进程B,然后A断了,停了,怎么找B呢?
A用multiprocessing起了一个进程B,然后A断了,停了,怎么找B呢?
回答:
from multiprocessing import Processimport 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 osfrom 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 psutilfor 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']}")
以上是 大家好,A进程用multiprocessing起了一个进程B,然后A断了,停了,怎么找B呢? 的全部内容, 来源链接: utcz.com/p/939015.html