【问题标题】:receive SIGTERM接收 SIGTERM
【发布时间】: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() 来注册处理程序。

标签: c unix signals sigterm


【解决方案1】:

如果人没有杀死你的进程,那么内核就是。

当机器试图从溺水中拯救自己时(您已用完所有内存/交换/资源),可能会发生这种情况。可能想查看进程运行时该系统上发生的情况。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-05-05
    • 2019-09-21
    • 2023-03-16
    • 2010-10-07
    • 2013-06-05
    • 2021-01-30
    • 2017-03-25
    • 2021-07-24
    相关资源
    最近更新 更多