暂时就无题吧,
悲催上次去面试,被问了什么叫僵尸进程,我竟然将守护进程说出来了,唉,伤不起,差不多三年的经验啊,一直将僵尸进程搞错了。。。
什么是僵尸进程
In UNIX System terminology, a process that has terminated,but whose parent has not yet waited for it, is called a zombie. 在UNIX 系统中,一个进程结束了,但是他的父进程没有等待(调用wait / waitpid)他, 那么他将变成一个僵尸进程。 但是如果该进程的父进程已经先结束了,那么该进程就不会变成僵尸进程, 因为每个进程结束的时候,系统都会扫描当前系统中所运行的所有进程, 看有没有哪个进程是刚刚结束的这个进程的子进程,如果是的话,就由Init 来接管他,成为他的父进程……
唉,我类个去~
还有个问题,为什么socket关闭之后不能马上再bind,要设置端口重用。
一切都是tcp协议啊~~,tcp有个TIME_WAIT 状态,端口和socket关联之后,close掉socket,端口并不能马上被再次使用。要等这个TIME_WAIT状态的改变,等个1-4分钟。。