| KILL(1) | Användarkommandon | KILL(1) |
NAMN
kill - avsluta en process
SYNOPSIS
kill [-signal|-s signal|-p] [-q value] [-a] [--timeout milliseconds signal] [--] pid|pid:_pidfd_inode_|name...
kill [-signal|-s signal] pid|pid:_pidfd_inode_...
kill -l [nummer|0xsigmask] | -L
kill -d pid
BESKRIVNING
Kommandot kill skickar den angivna signalen till de angivna processerna eller processgrupperna.
Om ingen signal anges skickas signalen TERM. Standardåtgärden för denna signal är att avsluta processen. Denna signal bör användas i stället för KILL-signalen (nummer 9), eftersom en process kan installera en hanterare för TERM-signalen för att utföra rensningssteg innan den avslutas på ett ordnat sätt. Om en process inte avslutas efter att en TERM-signal har skickats, kan KILL-signalen användas; tänk på att den senare signalen inte kan fångas och därför inte ger målprocessen möjlighet att utföra någon upprensning innan den avslutas.
De flesta moderna skal har ett inbyggt kill-kommando, med en användning som är ganska lik den för det kommando som beskrivs här. Flaggorna --all, --pid och --queue, samt möjligheten att ange processer med kommandonamn, är lokala tillägg.
Om signal är 0 skickas ingen faktisk signal, men felkontroll utförs ändå.
ARGUMENT
Listan över processer som ska signaleras kan bestå av en blandning av namn och PID:er.
pid
n
0
-1
-n
pid:_pidfd_inode_
namn
FLAGGOR
-s, --signal signal
-l, --list [nummer|0xsigmask]
$ ps s $$ UID PID VÄNTANDE BLOCKERAD IGNORERAD FÅNGAD STAT TTY TID KOMMANDO 1000 1608069 0000000000000000 0000000000000002 0000000000384000 0000000008013003 Ss pts/44 0:02 zsh $ kill -l 0x0000000000384000 TERM TSTP TTIN TTOU
If neither NUMBER nor 0xSIGMASK is given, list all signal names. In that case, print one signal per line when the output is not a terminal.
-L, --table
-a, --all
-p, --pid
-r, --require-handler
--verbose
-q, --queue värde
--timeout milliseconds signal
Observera att operativsystemet kan återanvända PID:er och att implementera en motsvarande funktion i ett skal med kill och sleep skulle kunna leda till att uppföljningssignalen skickas till en annan process som använder en återanvänd PID.
Flaggan --timeout kan anges flera gånger: signalerna skickas sekventiellt med de angivna tidsfristerna. Flaggan --timeout kan kombineras med flaggan --queue.
Följande kommando skickar t.ex. signalerna QUIT, TERM och KILL i sekvens och väntar 1000 millisekunder mellan varje signal:
kill --verbose --timeout 1000 TERM --timeout 1000 KILL \
--signal QUIT 12345
-d, --show-process-state pid
$ kill -d $$ Blockerad: INT Ignoreras: TERM TSTP TTIN TTOU Fångas upp: HUP INT RÖR ALRM CHLD VINSCH
-h, --help
-V, --version
AVSLUTSSTATUS
kill har följande värden för utgångsstatus:
0
1
64
ANTECKNINGAR
Även om det är möjligt att ange TID (tråd-ID, se gettid(2)) för en av trådarna i en flertrådad process som argument för kill, riktas signalen ändå till processen (dvs. hela trådgruppen). Det går med andra ord inte att skicka en signal till en explicit vald tråd i en flertrådad process. Signalen kommer att levereras till en godtyckligt vald tråd i målprocessen som inte blockerar signalen. För mer information, se signal(7) och beskrivningen av CLONE_THREAD i clone(2).
Olika skal har ett inbyggt kill-kommando som är att föredra framför kill(1) som beskrivs i den här handboken. Det enklaste sättet att säkerställa att man kör det kommando som beskrivs på den här sidan är att använda hela sökvägen när man anropar kommandot, t.ex: /bin/kill --version
UPPHOVSPERSONER
Salvatore Valente <svalente@mit.edu>, Karel Zak <kzak@redhat.com>
Originalversionen är hämtad från BSD 4.4.
SE ÄVEN
bash(1), tcsh(1), sigaction(2), kill(2), sigqueue(3), signal(7) proc(5) proc_pid_status(5)
FELRAPPORTERING
För felrapporter, använd felhanteraren https://github.com/util-linux/util-linux/issues.
TILLGÄNGLIGHET
Kommandot kill ingår i paketet util-linux som kan hämtas från Linux Kernel Archive https://www.kernel.org/pub/linux/utils/util-linux/.
| 2026-05-18 | util-linux 2.42.1 |