KILL(1) Användarkommandon KILL(1)

kill - avsluta en process

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

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å.

Listan över processer som ska signaleras kan bestå av en blandning av namn och PID:er.

pid

Varje pid kan uttryckas på ett av följande sätt:

n

där n är större än 0. Processen med PID n signaleras.

0

Alla processer i den aktuella processgruppen signaleras.

-1

Alla processer med en PID som är större än 1 signaleras.

-n

där n är större än 1. Alla processer i processgrupp n signaleras. När ett argument av formen '-n' anges och det är avsett att beteckna en processgrupp, måste antingen en signal anges först eller argumentet föregås av en '--'-flagga, annars kommer det att betraktas som den signal som ska skickas.

pid:_pidfd_inode_

A process can be referenced by its pid plus pidfd_inode (pid:pidfd_inode), to uniquely identify it and perform race-free signalling. This works only for the options -s, --signal and -signal. Requires kernel version 6.9 and later.

namn

Alla processer som anropas med detta namn kommer att signaleras.

-s, --signal signal

Den signal som ska skickas. Den kan ges i form av ett namn eller ett nummer.

-l, --list [nummer|0xsigmask]

Skriv ut en lista med signalnamn, konvertera det angivna signalnumret till ett namn eller konvertera den angivna signalmasken till namn. Signalerna finns i /usr/include/linux/signal.h.
$ 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

Similar to -l, but it will print signal names and their corresponding numbers. Print one signal per line when the output is not a terminal.

-a, --all

Begränsa inte konverteringen av kommandonamn till PID till processer med samma UID som den aktuella processen.

-p, --pid

Skriv bara ut process-ID (PID) för de namngivna processerna, skicka inga signaler.

-r, --require-handler

Skicka inte signalen om den inte fångas upp i userspace av den signalerade processen.

--verbose

Skriv ut PID(s) som kommer att signaleras med kill tillsammans med signalen.

-q, --queue värde

Skicka signalen med sigqueue(3) i stället för kill(2). Argumentet värde är ett heltal som skickas tillsammans med signalen. Om den mottagande processen har installerat en hanterare för den här signalen med flaggan SA_SIGINFO i sigaction(2), kan den hämta dessa data via fältet si_sigval i strukturen siginfo_t.

--timeout milliseconds signal

Skicka en signal definierad på vanligt sätt till en process, följt av en ytterligare signal efter en angiven fördröjning. Flaggan --timeout gör att kill väntar en period definierad i millisekunder innan en uppföljande signal skickas till processen. Den här funktionen implementeras med hjälp av Linux-kärnans PID-filbeskrivarfunktion för att garantera att uppföljningssignalen skickas till samma process eller inte skickas om processen inte längre existerar.

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

Avkoda signalrelaterade fält i /proc/pid/status.
$ kill -d $$
Blockerad: INT
Ignoreras: TERM TSTP TTIN TTOU
Fångas upp: HUP INT RÖR ALRM CHLD VINSCH

-h, --help

Visa hjälptext och avsluta.

-V, --version

Visa version och avsluta.

kill har följande värden för utgångsstatus:

0

lyckades

1

misslyckande

64

delvis framgång (när mer än en process anges)

Ä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

Salvatore Valente <svalente@mit.edu>, Karel Zak <kzak@redhat.com>

Originalversionen är hämtad från BSD 4.4.

bash(1), tcsh(1), sigaction(2), kill(2), sigqueue(3), signal(7) proc(5) proc_pid_status(5)

För felrapporter, använd felhanteraren https://github.com/util-linux/util-linux/issues.

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