本站资源收集于互联网,不提供软件存储服务,每天免费更新优质的软件以及学习资源!

如何查找并终止失去控制的子进程?

网络教程 app 1℃

如何查找并终止失去控制的子进程

如何定位已启动但失去控制的进程?

在使用 multiprocessing 启动进程时,可能会遇到进程 a 终止而留有处于活动状态的进程 b 的情况。这时,需要找到已启动的进程 b 并将其停止。

以下是几种可以用来查找和停止已启动进程的方法:

1. 保存进程 pid

在启动进程 b 时,将 b 的 pid 保存到文件中。当需要停止进程 b 时,读取文件中的 pid 并使用 kill 命令将其停止。

# 保存进程b的pidwith open("process_b.pid", "w") as file: file.write(str(p.pid))

# 使用kill命令来停止进程bkill $(cat process_b.pid)

2. 使用进程组

设置进程 b 为进程组的组长,当进程 a 退出时,进程 b 也将退出。

os.setpgid(0, 0)

保存进程 b 组的组 id 到文件中。

with open("process_b_gid", "w") as file: file.write(str(os.getpgid(p.pid)))

停止进程 b 组:

kill — -$(cat process_b_gid)

3. 命令行工具

使用 ps 命令查找进程 b:

ps aux | grep ‘进程b的一些特征’

4. 第第三方库

安装 psutil 库并使用其 psutil.process_iter 函数查找进程 b:

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

以上就是如何查找并终止失去控制的子进程?的详细内容,更多请关注范的资源库其它相关文章!

转载请注明:范的资源库 » 如何查找并终止失去控制的子进程?

喜欢 (0)