进程的正常退出步骤:
- 子进程调用exit()函数退出
- 父进程调用wait()函数为子进程处理其他事情
若进程没有按正常退出步骤,则有可能变为僵尸进程或者托孤进程
僵尸进程
子进程退出后,父进程没有调用wait()函数处理身后事,子进程变成僵尸进程。
编写程序实现僵尸进程
然后编译运行,通过ps aux | grep "test_main"
查看进程状态,发现状态为"Z"的僵尸进程
托孤进程
父进程比子进程先退出,子进程变为孤儿进程,Linux系统会把子进程托孤给pid为1号的进程(init)进程