【发布时间】:2014-07-08 05:09:28
【问题描述】:
我正在用 Python 编写一个使用以下工作流程的服务器程序: 1) 启动一个守护进程 2) 启动服务器套接字并监听传入连接 3) 当一个传入的socket被成功接受后,fork一个新的进程来处理这个连接,关闭child中的client socket和daemon中的server socket。
当我在守护进程中为 SIGCHLD 注册信号处理程序以获取子进程(无论处理程序的内容如何)并运行服务器时,守护程序在收到 SIGCHLD 时会崩溃。我一生都无法弄清楚为什么,因为无论出于何种原因,登录到 syslog 都对我不起作用,而且我无法调试它。我正在使用 PyCharm,它无法调试分叉进程。我该如何调试这个问题?什么可能导致程序在调用 SIGCHLD 处理程序时失败?
我在 Mac OS X.8 上使用 Python 3.4
【问题讨论】: