Ist SIGQUIT dasselbe wie SIGTERM?

13

Ich lerne CentOS / RHEL und beschäftige mich derzeit mit Prozessmanagement.

Das RHCSA-Buch, das ich lese, beschreibt, kill 1234wie man SIGQUIT sendet. Ich dachte immer, dass der Befehl kill, ohne einen Schalter für den Signaltyp hinzuzufügen, standardmäßig auf gesetzt sein solltekill -15

SIGTERM ist kill -15und SIGKILL ist kill -9, richtig?

Verwendet CentOS / RHEL eine etwas andere Methode kill -15oder habe ich mich gerade geirrt?

BEARBEITEN: kill -lgibt SIGQUIT als an kill -3und scheint mit der Verwendung der Tastatur zum Beenden eines Prozesses verbunden zu sein. man 7 signalgibt auch an, dass SIGQUIT ist kill -3, daher kann ich nur davon ausgehen, dass mein Buch falsch ist und besagt, dass SIGQUIT die kill -15Standardeinstellung ist.

bitofagoob
quelle

Antworten:

13

Nein, sie sind nicht gleich. Die Standardaktion für beide ist, den Prozess zu beenden, aber SIGQUITauch den Core zu sichern. Siehe zB die Linux-Manpagesignal(7) . killStandardmäßig sendet SIGTERM, daher kann ich mir nur vorstellen, dass die Erwähnung von SIGQUIT als Standard in der Tat nur ein Fehler ist. Diese Voreinstellung ist in POSIX enthalten , ebenso wie die Nummern für SIGTERM, SIGKILL und SIGQUIT.

ilkkachu
quelle
1
Ja. Ich denke, das Buch ist falsch, weil es auch SIGQUIT als -15 auflistet. Signal -15 ist eine etablierte Methode, um einen Prozess in der Linux-Welt zu beenden. Es gibt keinen Zweifel daran, dass es sich um einen Druckfehler handelt. Ich werde Ihre Antwort als richtig markieren. Vielen Dank, dass Sie die Funktionen von SIGQUIT erweitert haben.
Bitofagoob
1

Es gibt zwei Tötungsbefehle, einen in procps und einen in shell. Beide verwenden standardmäßig SIGTERM. Für procps kill geben die Befehle help, manual page und kill source (skill.c, Zeile 724 im neuesten Hauptzweig) alle SIGTERM an, was gut zu wissen ist, dass es konsistent ist.

Eine Sache, an die Sie sich bei Signalen erinnern sollten, ist, wenn Sie anfangen, den "üblichen Haufen" zu überwinden und Systeme verwenden, die sich ein wenig von einem x86-Linux-System unterscheiden. procps (und wahrscheinlich viele andere Programme) backen die Zahlen zur Kompilierungszeit ein (im Wesentlichen, was auch immer die Include-Datei enthält, suchen Sie nach signum.h).

Keine Sorge für SIGTERM, wie @ilkkachu sagt, es ist in POSIX.

Craig Small
quelle
Die Manpage für Skill besagt, dass Skill und Snice überholt sind. Ich frage mich, warum sie nicht aus dem Benutzerbereich entfernt wurden. Interessante Informationen jedenfalls. Vielen Dank.
Bitofagoob