扫码关注微信公众号

回复“面试手册”,获取本站PDF版

回复“简历”,获取高质量简历模板

回复“加群”,加入程序员交流群

回复“电子书”,获取程序员类电子书

当前位置: 计算机基础 > 操作系统 > 12.如何避免僵尸进程?
  • 让僵尸进程的父进程来回收,父进程每隔一段时间来查询子进程是否结束并回收,调用wait()或者waitpid(),通知内核释放僵尸进程
  • 采用信号SIGCHLD通知处理,并在信号处理程序中调用wait函数。父进程首先注册一个信号处理函数signal(SIGCHLD, sig_chld_handler),然后每当子进程退出的时候父进程都会受到SIGCHLD信号, 触发sig_chld_handler()函数,调用wait()函数等待子进程的退出。
  • 让僵尸进程变成孤儿进程,由init回收。例如可以父进程首先创建子进程,子进程创建孙子进程,由孙子进程处理事务,而子进程再创建完孙子进程后,就退出。这样孙子进程就变成了孤儿进程。

点击面试手册,获取本站面试手册PDF完整版