linux kill -9 杀不掉子进程的原因
时间: 2023-05-27 07:03:14 浏览: 365
杀不掉的进程
kill -9 命令是强制结束进程的命令。一般来说,它可以成功地杀死一个进程,但有些情况下,它无法杀死子进程,其中可能包括以下几个原因:
1. 子进程正在执行一个系统调用,而该系统调用无法被中断。比如,一个子进程正在等待一个被锁定的资源,而这个锁定操作无法被中断。
2. 子进程已经挂起了,而父进程没有调用 wait() 函数来等待它结束。在这种情况下,父进程已经终止了,子进程被转交给了 init 进程,但 init 进程也没有调用 wait() 函数来等待它结束,导致无法被杀死。
3. 子进程没有被正确地启动。比如,子进程传递给父进程的 PID 是错误的,或者父进程因为程序错误而没有正确地启动子进程。
4. 子进程已经成为孤儿进程(即其父进程已经终止),但它正在执行一些重要任务,导致系统无法杀死它。
5. 子进程正在执行一些危险操作,如修改系统资源,向其他进程发送信号等,导致系统无法杀死它。
阅读全文