1个回答

test
2024-06-27
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']}")
回复

适合作为回答的
- 经过验证的有效解决办法
- 自己的经验指引,对解决问题有帮助
- 遵循 Markdown 语法排版,代码语义正确
不该作为回答的
- 询问内容细节或回复楼层
- 与题目无关的内容
- “赞”“顶”“同问”“看手册”“解决了没”等毫无意义的内容