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 odertmux
- 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.