【发布时间】:2011-08-08 09:29:06
【问题描述】:
我在 c 中设计了一个消息传递接口,用于在我的系统中运行的不同进程之间提供通信。该接口为其目的创建了 10-12 个线程,并使用 TCP 套接字提供通信。
它工作正常,但有时它会收到信号 SIGTERM。谁能告诉我为什么会收到这个信号。
【问题讨论】:
-
有什么东西在你的过程中引导
kill吗? SIGTERM 是默认信号。 -
也许您可以在您的界面中为信号注册一个处理程序,并在处理程序中打印发送 SIGTERM (struct siginfo_t.si_pid) 的进程的 pid 值。
-
没有人直接杀死我的进程,它自己突然收到 SIGTERM
-
我有 SIGTERM 的处理程序,但它只打印信号编号。我收到了,那是 15。
-
那么打印 pid 代替。使用 sigaction() 而不是 signal() 来注册处理程序。