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

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

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


回答:

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

以上是 大家好,A进程用multiprocessing起了一个进程B,然后A断了,停了,怎么找B呢? 的全部内容, 来源链接: utcz.com/p/939015.html

回到顶部