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']}")