18
A
回答
27
当传递一个负 PID到kill
,它实际上将信号发送到处理由(绝对)数组。你在Python中使用os.killpg()
。
-1
您应该使用信号参数9来终止进程树。
根@本地:〜$蟒蛇
> > >进口OS
> > > os.kill(PID,9)
如果你要使用signal.SIGKILL常数,你应该使用os.killpg(PGID ,signal.SIGKILL)来终止进程树。
11
如果父进程不是“进程组”但您想要与子进程关闭,则可以使用psutil(https://pythonhosted.org/psutil/#processes)。 os.killpg无法识别非进程组的pid。
import psutil
parent_pid = 30437 # my example
parent = psutil.Process(parent_pid)
for child in parent.children(recursive=True): # or parent.children() for recursive=False
child.kill()
parent.kill()
4
另一种解决方法,如果你的过程不是一个进程组,你不想psutil使用,是运行这个shell命令:
pkill -TERM -P 12345
例如与
os.system('pkill -TERM -P {pid}'.format(pid=12345))
相关问题
- 1. 父进程在C#中终止时如何终止子进程
- 2. 终止子进程
- 3. Python中的子进程终止
- 4. python执行子进程而不等待子进程终止
- 5. 如何避免父进程终止在Python中的进程终止
- 6. python终止/杀子进程组
- 7. python子进程没有终止
- 8. Python - 终止子进程或PID?
- 9. 如何从WiX中终止进程
- 10. 如何使用pid终止Python进程?
- 11. 子进程终止清理
- 12. Python:在创建子进程后终止父进程
- 13. Ctrl-C如何终止子进程?
- 14. 从python函数启动和终止子进程
- 15. Windows如何终止进程?
- 16. “execv”子进程存在和终止
- 17. 我如何从Java终止进程树?
- 18. 在Ctrl-C上终止父进程和子进程
- 19. 停止主管进程而不会终止其他子进程
- 20. 父进程等到子进程终止时,子进程如何才能杀死父进程?
- 21. 如何使python子进程停止?
- 22. 在C中终止子进程后,父进程未完成
- 23. 如何检查Linux进程以确定进程何时/何时终止/终止?
- 24. 进程不终止
- 25. 终止进程 - AHK
- 26. WKWebView进程终止
- 27. Python多处理:如果父进程被终止,子进程是否会挂起?
- 28. Python子进程:如何在python中执行进程的子进程?
- 29. Python和子进程
- 30. 如何在Git中终止进程
编号'signal.SIGKILL'是正确的常数使用。 –
os.kill(pid,9)适用于我,我在centos上使用python 2.7 5.6 –
是的,'os.kill(pid,9)'适用于'signal.SIGKILL'碰巧是'9',这就是在大多数平台上。尽管如此,'signal.SIGKILL'是正确的使用常数,并且使用'9'代替'signal.SIGKILL'并不是一种改进,也不以任何方式解决OP的问题。 –