Das kill-Kommando ist einer der zentralen Unix-Befehle. Er sendet Signale an Prozesse (laufende Programme,etc.) . Diese können unterschiedlich auf Signale reagieren. Das Standard Signal ist 15 (SIGTERM). Normalerweise beendet man Programme und Server natürlich sauber z.B. via InitSkripte oder bei grafischen Programmen über das Menü. Das Killen via kill ist etwas für Notfälle, oder wenn ein Prozess keine anderen Beendigungsmethoden anbietet bzw. auf andere Methoden nicht mehr reagiert.

Ein Signal welches von den Prozessen nicht abfangbar ist und deshalb fast immer zur Beendigung derselben führt, ist Signalnummer 9 (SIGKILL). (z.B. kill -KILL 25442). Auch sehr häufig ist SIGHUP (HUP= hang up), es wird meistens dazu verwendet einem Prozess zu sagen, dass er seine Konfiguration neu laden und seine Logdateien neu öffnen soll.

Woher erfährt man nun die Prozess-ID (PID) eines Prozesses? Am besten mit dem ps-Kommando. Also z.B.:

ps ax

Dies gibt alle laufenden Prozesse aus. Da diese Ausgaben sehr lang sein können verwendet man häufig eine Pipe und filtert die Ausgabe mit grep. So bewirkt:

ps ax |grep exim

Das lediglich alle Prozesse die "exim" enthalten angezeigt werden.

Die Verwendung der Signalnummern (=Signale) ist nicht besonders standardisiert. Bei Squid kann mit einem Signal z.B. das Rotieren der Logfiles forciert werden.

kill gibt es als Bash-Builtin oder als eigenständiges Kommando (/bin/kill). Beide sind nahezu gleich. In der Bash wird natürlich automatisch das Bash-Builtin verwendet.

Häufig verwendete Signale sind

           1       HUP (hang up)
           2       INT (interrupt)
           3       QUIT (quit)
           6       ABRT (abort)
           9       KILL (non-catchable, non-ignorable kill)
           14      ALRM (alarm clock)
           15      TERM (software termination signal)

Eine Liste der verfügbaren Signale erhält man mit kill -l. Dabei zeigt das Bash-Builtin gegenüber dem eigenständigen Kommando eine wesentlich größere Menge Signale an - inklusive der zugehörigen Signalnummern.

 1) SIGHUP       2) SIGINT       3) SIGQUIT      4) SIGILL
 5) SIGTRAP      6) SIGABRT      7) SIGBUS       8) SIGFPE
 9) SIGKILL     10) SIGUSR1     11) SIGSEGV     12) SIGUSR2
13) SIGPIPE     14) SIGALRM     15) SIGTERM     16) SIGSTKFLT
17) SIGCHLD     18) SIGCONT     19) SIGSTOP     20) SIGTSTP
21) SIGTTIN     22) SIGTTOU     23) SIGURG      24) SIGXCPU
25) SIGXFSZ     26) SIGVTALRM   27) SIGPROF     28) SIGWINCH
29) SIGIO       30) SIGPWR      31) SIGSYS      34) SIGRTMIN
35) SIGRTMIN+1  36) SIGRTMIN+2  37) SIGRTMIN+3  38) SIGRTMIN+4
39) SIGRTMIN+5  40) SIGRTMIN+6  41) SIGRTMIN+7  42) SIGRTMIN+8
43) SIGRTMIN+9  44) SIGRTMIN+10 45) SIGRTMIN+11 46) SIGRTMIN+12
47) SIGRTMIN+13 48) SIGRTMIN+14 49) SIGRTMIN+15 50) SIGRTMAX-14
51) SIGRTMAX-13 52) SIGRTMAX-12 53) SIGRTMAX-11 54) SIGRTMAX-10
55) SIGRTMAX-9  56) SIGRTMAX-8  57) SIGRTMAX-7  58) SIGRTMAX-6
59) SIGRTMAX-5  60) SIGRTMAX-4  61) SIGRTMAX-3  62) SIGRTMAX-2
63) SIGRTMAX-1  64) SIGRTMAX

Tipps & Tricks

Manuals

kill (zuletzt geändert am 2007-12-23 22:46:59 durch localhost)