-
僵尸进程
- 子进程结束但是没有完全释放内存(在内核中的task_struct没有释放),该进程就会成为僵尸进程。
- 当僵尸进程的父进程结束后(变为孤儿僵尸进程)就会被init进程领养,最终被回收
- 避免僵尸进程
- 让僵尸进程的父进程来回收,父进程每隔一段时间来查询子进程是否结束并回收,调用wait()或者waitpid(),通知内核释放僵尸进程。
- 采用信号SIGCHLD通知处理,并在信号处理程序中调用wait函数。
- 让僵尸进程成为孤儿进程,由init进程回收。
如何杀掉一个进程:
- ctrl C
- kill 9 进程编号 (kill 19 进程编号 停止进程 )