kill(1p)

Från Wiki.linux.se
Version från den 29 augusti 2025 kl. 06.51 av Admin (diskussion | bidrag) (Skapade sidan med '= kill(1p) = == NAMN == kill — terminera eller signalera processer == SYNOPSIS == <pre> kill -s signal_namn pid... kill -l [exit_status] kill [-signal_namn] pid... kill [-signal_nummer] pid... </pre> == BESKRIVNING == Verktyget ''kill'' ska skicka en signal till den eller de processer som anges av varje ''pid''-operand. För varje ''pid''-operand ska ''kill'' utföra åtgärder som motsvarar funktionen ''kill()'' (se POSIX.1-2017, System Interfaces), anropad med...')
(skillnad) ← Äldre version | Nuvarande version (skillnad) | Nyare version → (skillnad)
Hoppa till navigering Hoppa till sök

kill(1p)

NAMN

kill — terminera eller signalera processer

SYNOPSIS

kill -s signal_namn pid...

kill -l [exit_status]

kill [-signal_namn] pid...

kill [-signal_nummer] pid...

BESKRIVNING

Verktyget kill ska skicka en signal till den eller de processer som anges av varje pid-operand.

För varje pid-operand ska kill utföra åtgärder som motsvarar funktionen kill() (se POSIX.1-2017, System Interfaces), anropad med:

  • pid-argumentet satt till operandens värde.
  • sig-argumentet satt enligt flaggan -s, -signal_nummer eller -signal_namn, eller SIGTERM om ingen av dessa angavs.

FLAGGOR

Flagga Beskrivning
-l (litet L) Om ingen operand ges: skriv alla signalnamn som stöds av implementationen.

Om exit_status ges och motsvarar värdet i skalparametern ? (se 2.5.2, Special Parameters och wait(1p)) för en process som terminerats av en signal, skriv signalnamnet för den signalen. Om exit_status är ett heltal som motsvarar ett signalnummer, skriv signalnamnet (utan prefixet SIG). Annars är resultatet ospecificerat.

-s signal_namn Ange vilken signal som ska skickas, med något av de symboliska namn som definieras i <signal.h>. Namn känns igen utan prefixet SIG och är skiftlägesoberoende. Det symboliska namnet 0 representerar signalvärde 0. Denna signal skickas istället för SIGTERM.
-signal_namn Ekvivalent med -s signal_namn.
-signal_nummer Ange ett icke-negativt heltal som representerar signalen som ska skickas istället för SIGTERM. Andra värden än de i listan nedan är odefinierade.

Tillåtna standardnummer (exempel):

Nummer Signal
0 0
1 SIGHUP
2 SIGINT
3 SIGQUIT
6 SIGABRT
9 SIGKILL
14 SIGALRM
15 SIGTERM

Obs: Om det första argumentet är ett negativt heltal tolkas det som flaggan -signal_nummer, inte som ett negativt pid (processgrupp). Använd -- före en negativ pid-operand för att undvika tvetydighet.

OPERANDER

pid

Ett av följande:
 1. Ett decimalt heltal som anger en process eller processgrupp som ska signaleras. Val av process(er) för positiva, negativa respektive nollvärden följer kill() i System Interfaces. pid 0 betyder alla processer i aktuell processgrupp. För negativa pid, se kill(). Om den första pid-operanden är negativ bör -- föregå den så att den inte tolkas som en flagga.  
 2. Ett jobbstyrnings-ID (se POSIX.1-2017, avsnitt 3.204, Job Control Job ID) som identifierar en bakgrundsprocessgrupp. Gäller endast i det aktuella skalets exekveringsmiljö (se 2.12, Shell Execution Environment).

exit_status

Ett decimalt heltal som anger ett signalnummer eller exitstatus från en process som terminerats av en signal.

STDIN

Inte använt.

INDATAFILER

Inga.

MILJÖVARIABLER

Följande variabler påverkar körningen av kill: LANG – standardvärde för internationaliseringsvariabler som är osatta eller tomma. LC_ALL – åsidosätter alla andra internationaliseringsvariabler om satt. LC_CTYPE – tolkning av teckensekvenser. LC_MESSAGES – format/innehåll för diagnostiska meddelanden. NLSPATH – plats för meddelandekataloger för LC_MESSAGES.

ASYNKRONA HÄNDELSER

Standard.

STDOUT

När -l inte anges: standard ut används inte.

När -l anges: skriv varje signalnamn i formatet

%s%c

där signalnamnet är versaler utan prefixet SIG och %c är antingen blanksteg eller nyrad. Sista posten avslutas med nyrad.

När -l och exit_status anges: skriv

%s\n

STDERR

Används endast för diagnostiska meddelanden.

UTGÅNGSFILER

Inga.

UTÖKAD BESKRIVNING

Ingen.

SLUTSTATUS

Följande returvärden används:

0

Minst en matchande process hittades för varje pid-operand, och signalen hanterades framgångsrikt för minst en matchande process.

>0

Ett fel inträffade.

FELSITUATIONER

Standard.

Följande avsnitt är informativa.

ANVÄNDNING

Processnummer kan erhållas med ps(1p).

Jobbstyrnings-ID fungerar inte som väntat när kill körs i sin egen verktygsmiljö, t.ex.:

nohup kill %1 &
system("kill %1");

I dessa fall delar inte kill skalets syn på jobbnumerering.

EXEMPEL

Något av följande kommando:

kill -9 100 -165
kill -s kill 100 -165
kill -s KILL 100 -165

skickar SIGKILL till processen med PID 100 och till alla processer vars processgrupps-ID är 165 (förutsatt att sändande process har behörighet och att målen existerar).

Signalsiffror är inte standardiserade mellan system. Om en process termineras av en signal indikerar exitstatus vilken signal som dödade den, men exakta värden är ospecificerade. Flaggan -l kan användas för att mappa heltalsvärden till signalnamn. Exempel:

job
stat=$?
if [ $stat -eq 0 ]; then
    echo "job slutfördes utan fel."
elif [ $stat -gt 128 ]; then
    echo "job terminerades av signal SIG$(kill -l $stat)."
else
    echo "job terminerades med felkod $stat."
fi

Att skicka standardsignalen (SIGTERM) till en processgrupp (t.ex. 123):

kill -TERM -123
kill -- -123

MOTIVERING

Flaggan -l kommer från C-shell och finns även i KornShell. Historiskt har utskriften kunnat vara flerradig. Det specificerade formatet medger både vertikala och horisontella listor.

Namnet SIGNULL för signal 0 togs bort; signalnamnet 0 räcker.

Krav på att känna igen signalnamn både med och utan prefixet SIG togs bort för portabilitetens skull. Historiska kill har varken skrivit eller accepterat SIG-prefix för -l-utdata resp. signalnamn.

För att undvika tvetydighet när första argumentet är ett negativt tal (signalnummer vs. processgrupp) ska implementationer tolka det som signalnummer; portabla skript ska använda -- när de anger en negativ processgrupp, om ingen annan flagga används.

Flaggan -s lades till för att uppfylla Utility Syntax Guidelines.

Jobbstyrnings-ID fungerar inte som väntat när kill körs i en separat verktygsmiljö (se exemplen ovan).

FRAMTIDA RIKTNINGAR

Inga.

SE ÄVEN

ps(1p), wait(1p), jobs(1p), bg(1p), fg(1p), kapitel 2 Shell Command Language. Grunddefinitioner i POSIX.1-2017: avsnitt 3.204 Job Control Job ID, kapitel 8 Environment Variables, avsnitt 12.2 Utility Syntax Guidelines, signal.h(0p). Systemgränssnitt: kill(3p).

COPYRIGHT

Delar av denna text är återgiven från IEEE Std 1003.1-2017, Portable Operating System Interface (POSIX), The Open Group Base Specifications Issue 7, 2018 Edition. Copyright © 2018 IEEE och The Open Group.

Vid skillnader gäller originalstandarden som auktoritativ. Den kan hämtas på: http://www.opengroup.org/unix/online.html

Sidslut

Orginalhemsidan på Engelska :https://man7.org/linux/man-pages/man1/kill.1p.html Det här är en maskinöversättning av Linux man sidor till svenska. Om du hittar fel är vi tacksamma om du rapporterar dem via formuläret som finns på https://www.linux.se/kontaka-linux-se/

Tack till Datorhjälp som har sponsrat Linux.se med webbhotell.