父进程的死亡是否有在Python子进程的路要走,如果父进程已经死亡检测?子进程检测在Python
7
A
回答
1
你可能会逃脱读你的父进程的ID在你的过程中非常早,然后检查,但当然是容易出现竞争情况。这并产卵的父母可能已经当场死亡,甚至在你的过程中得到了执行其第一条指令。
除非你有验证的方式,如果给定PID指的是“预期”的父母,我觉得这很难做得可靠。
3
如果您的Python进程在Linux下运行,并且系统调用prctl()
已公开,则可以使用答案here。
这可能会导致当父进程死亡的信号被发送到孩子。
1
我知道的唯一可靠的方法是专门为此创建一个管道。孩子将不得不反复尝试从管道读取数据,最好以非阻塞的方式读取数据,或使用select。当管道不存在(因为父母的死亡大概)了它会得到一个错误。
1
假设父活着的时候你开始这样做,你可以检查它是否仍然在一个繁忙的环路这样活着,通过使用psutil:
import psutil, os, time
me = psutil.Process(os.getpid())
while 1:
if me.parent is not None:
# still alive
time.sleep(0.1)
continue
else:
print "my parent is gone"
不怎么样,但...
相关问题
- 1. 在fork中检测子进程创建()
- 2. Node.js检测子进程退出
- 3. 检查python中的子进程
- 4. 检测子进程是否挂起父进程
- 5. Python子进程,给子进程输入
- 6. Python子进程:如何在python中执行进程的子进程?
- 7. Python的子进程在Windows
- 8. 检查子进程
- 9. Python子进程OSError
- 10. Python子进程Grep
- 11. 用Python子进程
- 12. Python和子进程
- 13. Python子进程readlines()?
- 14. Python线程和子进程
- 15. Python:用python创建子进程的子进程
- 16. 如何检测正在运行的进程使用python
- 17. 检测子进程期望在Ruby中输入
- 18. pgrep检测重复进程
- 19. 检测进程创建
- 20. C#检测进程退出
- 21. 检测进程中止
- 22. 检测创建进程
- 23. 在python上测试grep -r使用子进程.Popen
- 24. Python - 检测启动过程
- 25. .kill()在python子进程中杀死父进程而不是子进程
- 26. 如何检测Python子进程中的超时是否已经达到?
- 27. 测量CPU和子进程
- 28. 在.NET中检测进程崩溃
- 29. python子进程使用进口子进程
- 30. 的Python在进程列表中检测到一个python脚本的名称