GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Was kann dazu führen, dass SIGHUP erzeugt wird?

Signale können mit kill gesendet werden Utility oder kill syscall.Natürlich können Sie versuchen herauszufinden, wer dieses Signal sendet oder Ihre Terminals oder Netzwerkverbindungen trennt, aber es gibt eine einfachere praktische Möglichkeit, Ihr Problem zu lösen.

Wenn Code als Daemon ausgeführt werden soll, dies aber nicht wirklich ist (genau wie bei Ihnen), gibt es einen Wrapper, der jedes Programm in einen Daemon verwandeln kann. Überraschung - dieser Wrapper heißt daemon ! Es hat viele Optionen, wahrscheinlich am wichtigsten für Sie, die Option, Ihr Dienstprogramm automatisch neu zu starten, falls es jemals aus irgendeinem Grund abstürzt.

Wenn dieser Befehl nicht auf Ihrem Ubuntu installiert ist, einfach sudo apt-get install daemon , und man daemon um loszulegen.


Nun, es gibt ein paar Dinge, die man bei SIGHUP beachten sollte. Erstens hat es seinen Ursprung im Konzept des Auflegens, d. h. des Verbindungsverlusts zu einer Konsole über so etwas wie ein Modem. Im modernen Sprachgebrauch bedeutet dies im Allgemeinen, dass es seine kontrollierende tty verloren hat. Wenn Sie nicht darauf geachtet haben, sich von Ihrem tty zu trennen, erhält jedes Programm, das in einem bestimmten Terminal gestartet wird, ein SIGHUP, wenn das Terminal geschlossen wird. Hier erfahren Sie, wie Sie dies in Ihrem Programm tun. Weitere Optionen sind:

  • Ihr Programm in screen ausführen oder tmux
  • führen Sie Ihr Programm mit nohup aus oder ein anderes dämonisierendes Framework

Die andere Möglichkeit besteht darin, Ihrem Prozess absichtlich ein SIGHUP zu senden, das "traditionell" oft verwendet wird, um einem Prozess zu signalisieren, dass er seine Konfiguration erneut lesen soll.


Linux
  1. Wie kann ich bekommen, was meine Hauptfunktion zurückgegeben hat?

  2. kann ein programm seinen eigenen elfabschnitt lesen?

  3. Der Docker-Befehl kann keine Verbindung zum Docker-Daemon herstellen

  4. Was tun, wenn Strg + C einen Prozess nicht beenden kann?

  5. Stellen Sie fest, ob die Ausgabe stdout oder stderr ist

Was ist Bonjour auf meinem Computer? PC-Leitfaden für das Windows 10 Bonjour-Programm

Kann Strace/ptrace ein Programm zum Absturz bringen?

Was verwende ich unter Linux, um ein Python-Programm ausführbar zu machen?

Was kann eine „Ressource vorübergehend nicht verfügbar“ beim Befehl sock send() verursachen

Was kann Swap speziell tun, was RAM nicht kann?

Was kann ein Signal 11 verursachen?