Antworten:
Lesen Sie die Dokumentation. Das ist der einzige Weg. Wie Keith bereits schrieb , lautete die ursprüngliche Bedeutung von SIGHUP, dass der Benutzer den Zugriff auf das Programm verloren hatte und daher interaktive Programme abstürzen sollten. Daemons - Programme, die nicht direkt mit dem Benutzer interagieren - benötigen dieses Verhalten nicht und laden stattdessen häufig ihre Konfigurationsdateien neu, wenn sie SIGHUP erhalten. Dies sind jedoch nur Konventionen.
Wenn Sie die Quelle haben, können Sie das auch lesen. Wenn Sie nur die Binärdatei haben, können Sie versuchen, sie zu zerlegen, nach sigaction
Aufrufen zu suchen, für die ein Signalhandler eingerichtet wurde SIGHUP
, und herauszufinden, was diese Signalhandler tun. Es wird einfacher sein, SIGHUP erst gar nicht an dieses Programm zu senden.
Zu jedem Zeitpunkt befindet sich ein bestimmter Prozess in Bezug auf ein bestimmtes Signal in einem von drei Zuständen: Ignorieren, Ausführen der Standardaktion oder Ausführen eines benutzerdefinierten Handlers. Viele Unices erlauben es, die Signalmaske eines Prozesses zu sehen ps
, zB unter ps s
Linux. Das kann Ihnen sagen, ob der Prozess das Signal ignoriert oder sofort bei SIGHUP abstürzt, aber wenn der Prozess einen Handler festgelegt hat, können Sie nicht sagen, was der Handler tut.
Die Standardaktion besteht darin, den Vorgang bei SIGHUP zu beenden. Sehen Sie man 7 signal
für weitere Details. Aber Programme können es einfangen und tun, was sie wollen. Da Dämonprozesse niemals beendet werden sollen, verwenden sie SIGHUP normalerweise für andere Zwecke, z. B. um sich selbst neu zu initialisieren (wie pppd es tut). Firefox behält die Standardaktion bei.