僵尸进程
父进程没有调用wait系列函数,内核中有一个数据结构用来代表进程的,内核认为父进程还要使用子进程的这个结构。
所以在父进程结束之前(无论是正常结束,还是异常结束),这个结构一直不会被回收,所以僵尸进程产生了。
换句话说,只要父进程game over了,对应的僵尸进程就没有了。
杀掉僵尸进程
ps -A -o stat,ppid,pid,cmd | grep -e '^[Zz]'
先找出来
kill -9 进程id
接着杀掉
(ps:这只是临时解决办法,check you fucking code)
孤儿进程
父进程挂了,子进程没有挂,子进程就成为孤儿了。成为孤儿又怎么样?
不怎么样,孤儿应该需要被收养的,谁来收养,pid为1的进程。(init or systemd)