我试图在用C编写的linux-daemon中找到一个错误。该守护进程应该在无限循环中运行来回答请求。偶尔它会在没有明显原因的情况下停止。没有创建coredump。没有将kernel-segfault消息写入/ var / log / messages
我们已经知道该过程的死亡是由某些请求引起的,但是我找不到发生错误的源位置。
这是我到目前为止所做的:
这一切让我相信,问题不是由错误的指针引起的。每个exit() - 语句都以syslog() - 语句为前提,因此它不是停止自身的进程。此系统上没有用户可能会终止该进程。
如果没有coredump,还有什么可能会杀死unix进程?
彼得
答案 0 :(得分:1)
某些信号的默认处理程序。
如果这是一个守护进程,它可能会处理一些网络通信。默认情况下,套接字操作可能会引发SIG_PIPE信号。默认处理程序只退出程序。
确保忽略SIG_PIPE。