当前位置: 技术问答>linux和unix
进程端口占用问题
来源: 互联网 发布时间:2016-11-13
本文导语: 现有进程A,进程A使用9069端口,在进程A中用popen调用脚本,启动了 进程B。然后杀掉进程A,此时发现端口9069仍然被进程B占用着。 再将进程B杀掉后,9069端口才被释放。 进程B自身有起监听但不是用的9069,这是什么原...
现有进程A,进程A使用9069端口,在进程A中用popen调用脚本,启动了
进程B。然后杀掉进程A,此时发现端口9069仍然被进程B占用着。
再将进程B杀掉后,9069端口才被释放。
进程B自身有起监听但不是用的9069,这是什么原因呢?
进程B。然后杀掉进程A,此时发现端口9069仍然被进程B占用着。
再将进程B杀掉后,9069端口才被释放。
进程B自身有起监听但不是用的9069,这是什么原因呢?
|
因为进程B是A的子进程,A监听的端口被B继承了..
可以考虑设置A监听的端口的close-on-exec标志,这样这个端口就不会被其子进程继承了
fcntl(fd, F_SETFD, FD_CLOEXEC);
可以考虑设置A监听的端口的close-on-exec标志,这样这个端口就不会被其子进程继承了
fcntl(fd, F_SETFD, FD_CLOEXEC);