gpt4 book ai didi

linux - 什么会导致产生SIGHUP?

转载 作者:IT王子 更新时间:2023-10-29 00:21:31 26 4
gpt4 key购买 nike

我们有大约 40 台运行相同硬件和软件的计算机。他们都运行 Ubuntu 11.10。他们都只有一个用户帐户可以登录。.profile 文件设置为启动守护进程。守护进程的代码是用 C 语言编写的。

每隔几周,我们就会收到一份报告,指出守护进程不再运行。这不会发生在所有计算机上,而只会发生在一两台计算机上。我们无法始终如一地重现该问题。

查看代码,应用程序在收到 SIGHUP 或 SIGTERM 时退出。

据我了解,SIGHUP 是在用户注销时生成的。在我们的例子中,用户永远不会注销。我想知道是否有可能由于其他原因生成 SIGHUP。任何其他想法将不胜感激。

最佳答案

嗯,关于 SIGHUP 有几点需要注意。首先,它的起源是挂断的概念,即通过调制解调器之类的东西失去与控制台的连接。用现代的说法,这通常意味着它失去了控制终端。除非您小心地与您的 tty 分离,否则在给定终端中启动的任何程序都会在终端关闭时收到 SIGHUP。参见 here有关如何在您的程序中执行此操作的详细信息。其他选项包括:

  • screentmux 中运行程序
  • 使用 nohup 或其他一些守护进程框架运行您的程序

另一种可能性是故意向您的进程发送 SIGHUP,“传统”通常用于向进程发出信号,表明它应该重新读取其配置。

关于linux - 什么会导致产生SIGHUP?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13337701/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com