当前位置: 技术问答>linux和unix
为什么程序异常后,这个程序监听的端口被转移到其它进程里
来源: 互联网 发布时间:2016-05-26
本文导语: A程序启动监听,接受连接后做些工作,其中就是通过system命令执行B程序进程, 后面程序接着正常运行,突然A程序异常退出了,但是发现端口却仍然使用中并且是B程序的进程在使用该端口,这是为什么啊 ...
A程序启动监听,接受连接后做些工作,其中就是通过system命令执行B程序进程,
后面程序接着正常运行,突然A程序异常退出了,但是发现端口却仍然使用中并且是B程序的进程在使用该端口,这是为什么啊
后面程序接着正常运行,突然A程序异常退出了,但是发现端口却仍然使用中并且是B程序的进程在使用该端口,这是为什么啊
|
你想要的效果是啥樣的?
|
因為當A進程創建了B進城以後,B進程可以繼承A的資源,相應的在內核中,資源對應的計數器會加一,而當A進程
死掉了以後,計數器會減一,但是並不為零。所以內核不會釋放掉資源,因為B進程具有資源的使用權,所以它依
然可以繼續使用。
死掉了以後,計數器會減一,但是並不為零。所以內核不會釋放掉資源,因為B進程具有資源的使用權,所以它依
然可以繼續使用。
|
如果你觉得用system不可控.
那就换成fork加execl吧,这样好控制些.
那就换成fork加execl吧,这样好控制些.
|
学习了。