1、僵尸进程
~~~~ 僵尸进程:父进程创建了子进程,如果子进程退出,而父进程没有调用wait和waitpid获取子进程状态,那么子进程的进程描述符任然保持在系统中。
2、孤儿进程
~~~~ 父进程退出,而子进程还在运行,这个时候子进程会被init进程接管,由init进程完成子进程的收集工作。
3、查看僵尸进程
~~~~
首先可以使用top查看是否有僵尸进程,如下图
现在是零个僵尸进程,如果发现有僵尸进程,我们可以通过ps获取僵尸进程的信息:
ps -A -ostat,ppid,pid,cmd | grep -e '^[Zz]'
-A : 参数列出所有进程
-o : 自定义输出字段 我们设定显示字段为 stat(状态), ppid(进程父id), pid(进程id),cmd(命令)这四个参数
grep : 因为状态为 z或者Z的进程为僵尸进程,所以我们使用grep抓取stat状态为zZ进程。
~~~~ 然后我们可以kill掉僵尸进程即可。
4、查看进程的线程信息
~~~~
顺便记录一下怎么查看线程信息。
查看线程:
方法一:使用ps命令,-T可以查看开启的线程信息
ps -T -p <pid>
方法二:使用top命令,可以实时显示各个线程的情况,想要查看线程状态,加上-H即可
top -H [-p <pid>]