ppid=1
创始人
2024-05-13 10:28:28

---------------------------------------普通进程------------------------------------------

普通进程,父进程不主动去回收子进程的资源。
一个子进程在其父进程还没有调用wait()或waitpid()的情况下退出。这个子进程就是僵尸进程。产生僵尸进程的原因:
1、子进程结束后向父进程发出SIGCHLD信号,父进程默认忽略了它;
2、父进程没有调用wait()或waitpid()函数来等待子进程的结束;

处理办法:把父进程杀掉,僵尸进程会变成孤儿进程,然后过继给1号进程,而1号进程会扫描名下子进程,把 Z 状态进程回收;

这时候僵尸进程已经退出了,只保留了task_struct结构体,所以发信号(-9等信号)去处理僵尸进程是无效的;

-----------------------------------ppid=1的进程-------------------------------

通过对普通僵尸进程的分析,这样看起来好像 父进程为1号进程的进程 不会成为僵尸进程了,因为1号进程都会时刻扫描其子进程的状态。

发现是 僵尸进程就会马上去释放它的资源;

但是,父进程为1号进程的进程 其实也是有可能成为僵尸进程的。下面说几种情况:

1、进程还在被其它进程使用,退出;

2、进程的子线程还在执行任务,但主线程已经死掉了(可能主线程已经被杀了,systemd停止服务时会发SIGTERM信号);

3、进程阻塞在某一IO请求上,这时控制权已交到内核手上,这时如果子进程被KILL掉, 那么就成为父进程ID为1的僵尸进程,这个进程不会退出,会一直阻塞直到IO请求被满足;

相关内容

热门资讯

中美探月、滴血测癌……《自然》...   炒股就看金麒麟分析师研报,权威,专业,及时,全面,助您挖掘潜力主题机会! (来源:文汇报)国际...
纽约期金涨超0.6%,一度刷新... 格隆汇1月15日|周三(1月14日)纽约尾盘,现货黄金涨0.69%,报4618.07美元/盎司,亚太...
政府采购促进绿色低碳发展 国道、省道、县道、乡道等各级公路的施工和运营有望更加绿色低碳。 财政部、交通运输部近期联合发文,部署...
大宗商品综述:特朗普讲话拖累油...   原油周三在常规时段上涨之后盘后下跌,特朗普的讲话表明美国或许会暂缓对伊朗镇压抗议示威采取行动。金...
卖了房子养鸡去 转自:贵州日报 本报讯(记者 陈丹)1月13日,钱伟平踏上了回老家河南郑州的路途,这次回去,是为了卖...