![Dekodieren von Flags für Kill-Befehl](https://rvso.com/image/31662/Dekodieren%20von%20Flags%20f%C3%BCr%20Kill-Befehl.png)
Ich habe diesen Befehl in einem Buch für Linux-Shell-Scripting gesehen
$ kill -HUP 1234 >killout.txt 2>killerr.txt
Ich weiß, was der Befehl macht, aber ich verstehe die Flags nicht-HUP
Antwort1
Versuchen Sie es unter Linux man 7 signal
.
kill -HUP 1234
bedeutet „sende das SIGHUP-Signal (1) an Prozess 1234“, es ist also gleichbedeutend mit kill -1 1234
. Das Standardsignal, das von kill gesendet wird, ist SIGTERM (15), es kill 1234
ist also gleichbedeutend mit kill -TERM 1234
oder kill -15 1234
.
Antwort2
-HUP
sind nicht die drei Flags H
, U
, P
wie in der üblichen einstelligen Optionssyntax. Aus historischen Gründen kill
verwendet der Befehl einen optionalen Signalnamen oder eine Signalnummer, der ein Bindestrich ( -
) vorangestellt ist.
kill -1 1234
kill -HUP 1234
(Im Gegensatz zu kill 1 1234
, das das Standardsignal (SIGTERM) an die Prozesse 1 und 1234 senden würde.)
Auf Ihrer Manpage steht wahrscheinlich etwa Folgendes:
kill [ -signal | -s signal ] pid ...
Das -signal
bedeutet, dass Sie einen Bindestrich gefolgt von einer Signalbezeichnung (die ein Name oder eine Nummer sein kann) verwenden können. Alternativ können Sie die -s
Option gefolgt von einem Signalnamen verwenden; dies sind zwei verschiedene Syntaxen mit derselben Bedeutung.
kill -l
listet die verfügbaren Signalnamen und die entsprechenden Nummern auf.
Am meistenSignalehaben eine vordefinierte Bedeutung basierend aufwer sendet sie wannund wie Prozesse darauf reagieren sollen und können.