服务器进程fork()两次的原因
来源:互联网 发布:淘宝上iphone裸机 编辑:程序博客网 时间:2024/05/14 21:25
作为一个服务器进程,是需要不断运行的,不能够 退出的进程,但是如何保证服务器进程运行过程中不会因为子进程而影响服务器的性能呢?这里来阐述服务器进程父进程创建子进程之后会带来的一些问题,以及如何解决这些问题。
服务器进程fork()一次,产生一个子进程,作为工作进程,当这个工作进程运行结束之后,向父进程发送SIGCHILD信号,默认情况下,父进程会忽略这个信号,除非采用signal()信号处理函数对子进程的资源进行回收,否则,此时工作进程就会成为一个僵尸进程,僵尸进程虽然不占用系统的任何资源,但是过多的僵尸进程会影响系统的性能。那么怎么才能让工作进程不成为僵尸进程呢?此时在创建一次fork(),让第一次创建的子进程成为第二次fork()的父进程,然后创建的子进程作为工作进程,此时让工作进程的父进程退出,计算机系统中当父进程退出,子进程未退出,此时的子进程成为了孤儿进程,那么他会被init进程收养,当孤儿进程退出时,会由init进程来回收资源。综上所述,对于一个一直运行的服务器进程,要产生工作进程,采用两次fork()可以避免僵尸进程的产生,能够保证系统性能。
- 服务器进程fork()两次的原因
- 服务器进程fork两次原理
- 守护进程的实现以及fork两次的原因
- 服务器进程为何通常fork()两次
- 服务器进程为何通常fork()两次
- 服务器进程为何通常fork()两次
- 服务器进程为何通常fork()两次
- 服务器进程为何通常fork()两次
- 服务器进程为何通常fork()两次
- 服务器进程为何通常fork()两次
- 服务器进程为何通常fork()两次
- 服务器进程为何通常fork()两次
- 服务器进程为何通常fork两次(转)
- 服务器进程为何通常fork()两次
- 服务器进程为何通常fork()两次
- linux服务器进程为何通常fork()两次
- 服务器两次fork()的目的
- 守护进程以及fork两次的问题
- iOS 7设计
- 罗技摄像头C270与嵌入式LINUX(linux UVC驱动分析)
- HDU 1019
- .NET验证手机号码、电话号码、身份证号、数字和邮编
- IOS开发中nil和release的用法 以及nil和 null的使用
- 服务器进程fork()两次的原因
- 基于jeasyui的遮罩扩展[修复链式bug]
- ContentObserver回调与ContentProvider注册notifychange
- ActiveMQ
- POJ 2533 Longest Ordered Subsequence - from lanshui_Yang
- tomcat最大连接数的设置
- zero和null及sparse文件
- 佛曰
- hadoop0.23 源码编译 错误及原因