linux kill一个进程杀不掉是因为这个进程是僵尸进程
僵尸进程和孤儿进程
孤儿进程:一个父进程退出,而它的一个或多个子进程还在运行,那么那些子进程将成为孤儿进程。孤儿进程将被init进程(进程号为1)所收养,并由init进程对它们完成状态收集工作。(父进程先退出)
僵尸进程:一个进程使用fork创建子进程,如果子进程退出,而父进程并没有调用wait或waitpid获取子进程的状态信息,那么子进程的进程描述符仍然保存在系统中。这种进程称之为僵死进程。(子进程先退出)
解决方法
kill -9他的父进程
先查询该进程的进程号
比如这个进程的名字是similar_application
ps ux | grep similar_application
查询到了进程号,假设为pid
执行
cat /proc/pid/status
获取他的父进程,比如为ppid,然后干掉这个父进程
kill -9 ppid
当一个子进程在父进程之前退出,如果父进程没有收集其状态,子进程会变成僵尸进程。孤儿进程则是父进程退出后由init接管的子进程。解决僵尸进程的方法是找到其父进程pid,然后使用kill-9命令结束父进程。
9537





