+ -
当前位置:首页 → 问答吧 → 服务器信号丢失的疑问

服务器信号丢失的疑问

时间:2010-07-24

来源:互联网

采用多进程模型编写了一个ftp服务器程序,已经在服务器初始化的时候安装信号,捕捉SIGCHLD信号,代码如下:
  1. void sig_child(int signo)
  2. {
  3.         pid_t pid;
  4.         int stat;

  5.         while ((pid = waitpid(-1, &stat, WNOHANG)) > 0)
  6.                 printf("child %d terminated\n", pid);
  7. }
复制代码
现在的问题是:启动服务器,然后等待客户端连接。启动客户端连接服务器,并且通过了用户名和密码认证;客户端输入bye退出,服务器受到SIGCHLD信号,并且正确处理该信号。再次启动客户端连接服务器(此时服务器没有退出),采用同上述的操作,客户端退出后,服务器没有收到SIGCHLD信号,ps进程一看有僵尸进程。

请教下各位,这种情况是什么原因呢?

作者: zhanglistar   发布时间: 2010-07-24

回复 zhanglistar


    自己顶个,期待答案。

作者: zhanglistar   发布时间: 2010-07-24