linux进程管理之wait/waitpid处理僵死进程详解( 二 )
如下图分别为创建的5个连接、客户端exit后服务端的四个僵死子进程:
文章插图
文章插图
解决方法:
使用waitpid而不是wait 。 如下的处理函数管用 , 因为在一个循环内调用waitpid , 以获取进程终止状态 。 waitpid函数的参数options指定为WNOHANG , 告知waitpid在尚有未终止的子进程时 , 不阻塞 。 而使用wait无法阻止其在还有子进程未结束时阻塞 。
//使用waitpid的信号处理函数void onSignalCatch(int signalNumber){pid_t pid;int stat;//pid = wait(//下列函数的第一个参数为-1表示等待第一个终止的子进程while ((pid = waitpid(-1,return; }结果如下:
文章插图
文章插图
至此 , 客户服务器代码就完成了 , 加入了对僵死进程的处理 。
- 会员|美容院使用会员管理软件给顾客更好的消费体验!
- 平台|Win平台上的本地音乐管理软件,MusicBee
- 团队|为什么项目管理非常重要?
- 值得|安全419宝典:如何做好文档的安全管理 这4个方法值得借鉴
- 移植|开发者将移植ARM Mac的Linux系统 但需要得到资金支持
- 设置|钉钉怎么设置或更换主管理员
- Linux|知名开发者要把Linux移植到苹果M1 Mac上
- 企业|日立电梯获评绿色供应链管理示范企业
- Linux(服务器编程):百万并发服务器系统参数调优
- linux配置nginx定时日志分割
