Dekodieren von Flags für Kill-Befehl

Dekodieren von Flags für Kill-Befehl

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 1234bedeutet „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 1234ist also gleichbedeutend mit kill -TERM 1234oder kill -15 1234.

Antwort2

-HUPsind nicht die drei Flags H, U, Pwie in der üblichen einstelligen Optionssyntax. Aus historischen Gründen killverwendet 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 -signalbedeutet, dass Sie einen Bindestrich gefolgt von einer Signalbezeichnung (die ein Name oder eine Nummer sein kann) verwenden können. Alternativ können Sie die -sOption gefolgt von einem Signalnamen verwenden; dies sind zwei verschiedene Syntaxen mit derselben Bedeutung.

kill -llistet 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.

verwandte Informationen