②不是活着的进程
z:表示僵尸的意思,表示a.out进程为僵尸进程 。
如何杀死僵尸进程呢?通过杀死他爹的进程就行了,也就是3516,直接杀死僵尸进程是不能消除的,相当于鞭尸 。
(3)进程回收
①wait-阻塞函数(与差不多,也就是一直阻塞在哪,等待消息)
pid_t wait(int * );
作用:因为子进程需要父进程进行回收,而且在并发运行的时候,父子进程的执行顺序是不一定的,所以需要wait函数去使得父进程等待子进程结束,然后回收,最后父进程结束,造成有顺序的执行 。
如上died child pid是最后执行的,表明父进程是在子进程执行完,回收它之后执行完的 。
②
这里最后的返回值为9,表明父进程一直执行到最后,所以返回了9,也就是 正常退出
当子进程一直循环不退出时,父进程将一直等待:
有两个进程在运行,kill -9 4051。通过信号杀死子进程,预期不会返回12,会返回9
终止了 。
小结:
父进程结束的比子进程早,则会造成子进程成为孤儿进程;
父进程结束的比子进程晚,并且父进程一直不退出,则会造成子进程成为僵尸进程;(所以消灭僵尸进程是通过kill父进程达到目的)
解决方法:通过父进程中调用wait函数 。
- 台风路径实时发布系统15号台风云图 布拉万将向北偏东转东北方向移动
- 实施隧道人员定位系统,提高交通工作效率,保障人员安全-新导智能
- 35 【雕爷学编程】 MicroPython动手做——体验小游戏
- UWB智慧工厂人员定位系统源码,人员在岗监控、车辆实时轨迹监控源码
- 毕业设计资料 基于52单片机的脉搏心率测量仪系统
- linux性能优化-内存原理
- 【计算机毕业设计】忘忧小区物业管理系统
- 18 如何安装SCO Unix《精通Unix下C语言编程与项目实践》读书笔记
- 【毕业设计之Android系列】智能家居远程控制系统设计
- 沈阳博能科技推出RFID无人值守库房系统