Kill: Skillnad mellan sidversioner

Från Wiki.linux.se
Hoppa till navigering Hoppa till sök
(Skapade sidan med '== kill - Skicka signaler till processer == Kommandot `kill` används för att skicka signaler till processer i ett Unix-liknande operativsystem. Den vanligaste användningen är att avsluta processer. === Syntax === kill [ALTERNATIV] PID... === Beskrivning === Kommandot `kill` används för att skicka signaler till en eller flera processer. Standardinställningen är att skicka signalen TERM (15), vilket avslutar processen. Andra signaler kan specificeras för att ut...')
 
Ingen redigeringssammanfattning
Rad 1: Rad 1:
== kill - Skicka signaler till processer ==
= kill(1) =
Kommandot `kill` används för att skicka signaler till processer i ett Unix-liknande operativsystem. Den vanligaste användningen är att avsluta processer.


=== Syntax ===
== NAMN ==
kill [ALTERNATIV] PID...
kill — terminera en process


=== Beskrivning ===
== SYNOPSIS ==
Kommandot `kill` används för att skicka signaler till en eller flera processer. Standardinställningen är att skicka signalen TERM (15), vilket avslutar processen. Andra signaler kan specificeras för att utföra olika åtgärder, såsom att stoppa, pausa eller fortsätta en process.
<pre>
kill [-signal | -s signal | -p] [-q värde] [-a] [--timeout millisekunder signal] [--] pid|namn...


=== Alternativ ===
kill -l [nummer|0xmask] | -L
Kommandot `kill` stöder flera alternativ som kan användas för att justera vilken signal som skickas och hur kommandot utförs:


* -s, --signal SIGNAL - Specificera vilken signal som ska skickas (signalnamn eller nummer).
kill -d pid
* -l, --list [SIGNAL] - Lista signalnamn och -nummer. Om SIGNAL är angivet, visa information om den specifika signalen.
</pre>
* -L, --table - Visa en tabell över alla signaler.
* -q, --queue VALUE - Skicka en realtidssignal med ett värde.
* --help - Visa hjälpmeddelande och avsluta.
* --version - Visa versionsinformation och avsluta.


=== Signaler ===
== BESKRIVNING ==
Vanliga signaler som kan skickas med `kill`:
Kommandot ''kill'' skickar den angivna signalen till de angivna processerna eller processgrupperna.


* **1 (HUP)** - Återläs processens konfigurationsfiler.
Om ingen signal anges skickas signalen TERM. Standardåtgärden för denna signal är att terminera processen. TERM bör användas istället för KILL (signalnummer 9), eftersom en process kan fånga TERM för att utföra städning innan den avslutas. KILL kan inte fångas och ger inte processen möjlighet att städa innan avslut.
* **2 (INT)** - Avbryt processen (motsvarar Ctrl+C).
* **9 (KILL)** - Tvinga omedelbar avslutning av processen.
* **15 (TERM)** - Avsluta processen på ett ordnat sätt (standard).
* **18 (CONT)** - Fortsätt en pausad process.
* **19 (STOP)** - Pausa processen.


=== Exempel ===
De flesta moderna skal har ett inbyggt ''kill''-kommando med liknande syntax. Flaggorna ''--all'', ''--pid'', ''--queue'' samt möjligheten att ange processer via namn är lokala tillägg.
Här är några praktiska exempel som visar hur du kan använda `kill`-kommandot:


* För att avsluta en process med PID 1234:
Om signal = 0 anges skickas ingen signal, men felkontroll görs ändå.
<code>
kill 1234
</code>


* För att tvinga avslutning av en process med PID 1234:
== ARGUMENT ==
<code>
En lista av processer som ska signaleras kan vara en blandning av namn och PID.
kill -9 1234
</code>


* För att skicka signalen HUP till en process med PID 1234:
''pid'' 
  <code>
: Kan uttryckas på följande sätt: 
kill -1 1234
  * n — där n > 0. Processen med PID n signaleras. 
</code>
  * 0 — alla processer i aktuell processgrupp signaleras.  
  * -1 — alla processer med PID > 1 signaleras. 
  * -n — där n > 1. Alla processer i processgruppen n signaleras. Om formatet -n används och det avser en processgrupp måste en signal anges först, eller argumentet föregås av ''--'', annars tolkas det som ett signalnummer.


* För att lista alla tillgängliga signaler:
''namn''  
  <code>
: Alla processer som startats med detta namn signaleras.
kill -l
</code>


* För att skicka signalen STOP till flera processer:
== FLAGGOR ==
<code>
{| class="wikitable"
  kill -STOP 1234 5678
! Flagga !! Beskrivning
</code>
|-
| -s, --signal ''signal'' || Skicka angiven signal, namn eller nummer.
|-
| -l, --list [nummer|0xmask] || Lista alla signalnamn, konvertera nummer till namn eller mask till namn. Signaldefinitioner finns i <code>/usr/include/linux/signal.h</code>.
|-
| -L, --table || Lista signalnamn tillsammans med deras nummer.
|-
| -a, --all || Begränsa inte namn-till-PID-konvertering till samma UID som den aktuella processen.
|-
| -p, --pid || Skriv endast PID för de namngivna processerna, skicka ingen signal.
|-
| -r, --require-handler || Skicka inte signalen om den inte fångas i användarutrymmet av processen.
|-
| --verbose || Skriv ut PID:er som signaleras tillsammans med signalen.
|-
| -q, --queue ''värde'' || Skicka signal med [[sigqueue(3)]] istället för [[kill(2)]]. ''värde'' skickas med signalen och kan tas emot i ''si_sigval'' om processen använder ''SA_SIGINFO''.
|-
| --timeout ''ms signal'' || Skicka en signal och följ upp med ytterligare signal(er) efter angivet antal millisekunder. Säkerställer att uppföljningssignalen inte skickas till återanvänd PID. Kan kombineras med ''--queue'' och anges flera gånger. 
Exempel:
<pre>
kill --verbose --timeout 1000 TERM --timeout 1000 KILL \
    --signal QUIT 12345
</pre>
|-
| -d, --show-process-state ''pid'' || Avkoda signalrelaterade fält i <code>/proc/pid/status</code>. 
Exempel:  
<pre>
$ kill -d $$
Blocked: INT
Ignored: TERM TSTP TTIN TTOU
Caught: HUP INT PIPE ALRM CHLD WINCH
</pre>
|}


* För att fortsätta en pausad process med PID 1234:
== SLUTSTATUS ==
<code>
''kill'' returnerar följande värden:
kill -CONT 1234
</code>


=== Skillnader mellan macOS och Linux ===
Det finns några viktiga skillnader att tänka på när man använder `kill`-kommandot på macOS jämfört med Linux:
: Lyckades. 


* Signaluppsättning: Både macOS och Linux stöder de flesta vanliga signaler, men det kan finnas skillnader i tillgängligheten och beteendet hos vissa mindre vanliga signaler. Det är alltid bra att kontrollera `man kill` för din specifika plattform.
* Alternativ och funktioner: Grundläggande funktioner och alternativ i `kill` är liknande på både macOS och Linux. Vissa versioner av `kill` kan dock ha ytterligare alternativ beroende på distribution och version.
: Misslyckades.
* Användarupplevelse: Utseendet och beteendet för kommandot kan variera något beroende på terminalemulator och skalkonfiguration, men den grundläggande funktionaliteten är densamma.


Det är alltid bra att konsultera `man`-sidan för `kill` på din specifika plattform för att se vilka alternativ och funktioner som är tillgängliga och hur de används.
64 
: Partiell framgång (när flera processer angavs).


=== Felsökning ===
== ANMÄRKNINGAR ==
Om du får ett felmeddelande när du använder `kill`, kontrollera följande:
Det är möjligt att ange TID (tråd-ID, se [[gettid(2)]]) för en tråd i en multitrådad process, men signalen riktas ändå till hela processen (trådgruppen). Signalen levereras till en godtyckligt vald tråd som inte blockerar signalen. Se [[signal(7)]] och [[clone(2)]].


* Att du har rätt att skicka signaler till den specifika processen (använd `sudo` om nödvändigt).
Olika skal tillhandahåller egna inbyggda ''kill''. För att vara säker på att man kör det fristående programmet, använd full sökväg, t.ex.:
* Att PID som du försöker skicka en signal till är korrekt och att processen existerar.
<pre>
* Att signalen du försöker skicka är tillgänglig och korrekt angiven.
/bin/kill --version
</pre>


=== Se även ===
== FÖRFATTARE ==
* [[pkill]] - Skicka signaler till processer baserat på namn och andra attribut.
Salvatore Valente <svalente@mit.edu>, Karel Zak <kzak@redhat.com> 
* [[killall]] - Skicka signaler till alla processer som matchar ett namn.
Originalversionen togs från BSD 4.4.
* [[ps]] - Visa information om aktiva processer.
* [[top]] - Visar systemets processoraktivitet och resurser i realtid.


=== Källor ===
== SE ÄVEN ==
* [https://www.gnu.org/software/coreutils/manual/html_node/kill-invocation.html GNU coreutils manual]
[[bash(1)]], [[tcsh(1)]], [[sigaction(2)]], [[kill(2)]], [[sigqueue(3)]], [[signal(7)]], [[proc(5)]], [[proc_pid_status(5)]]
* [https://man7.org/linux/man-pages/man1/kill.1.html kill manual (Linux)]
* [https://ss64.com/osx/kill.html kill manual (macOS)]


[[Kategori:Linuxkommandon]]
== FELRAPPORTERING ==
Felrapporter skickas via: https://github.com/util-linux/util-linux/issues
 
== TILLGÄNGLIGHET ==
Kommandot ''kill'' ingår i paketet util-linux, som kan hämtas från: 
https://www.kernel.org/pub/linux/utils/util-linux/ 
 
Projektets kod finns på: git://git.kernel.org/pub/scm/utils/util-linux/util-linux.git 
Manualsidans HTML-version genererades 2025-02-02.
 
= Sidslut =
 
Orginalhemsidan på Engelska : https://man7.org/linux/man-pages/man1/kill.1.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/
<BR><BR>Tack till [https://datorhjalp.se Datorhjälp] som har  sponsrat [https://www.linux.se Linux.se] med webbhotell.
 
[[Kategori:Linuxmanual grupp 1]]
[[Kategori:Linuxmanual]]

Versionen från 29 augusti 2025 kl. 06.53

kill(1)

NAMN

kill — terminera en process

SYNOPSIS

kill [-signal | -s signal | -p] [-q värde] [-a] [--timeout millisekunder signal] [--] pid|namn...

kill -l [nummer|0xmask] | -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 terminera processen. TERM bör användas istället för KILL (signalnummer 9), eftersom en process kan fånga TERM för att utföra städning innan den avslutas. KILL kan inte fångas och ger inte processen möjlighet att städa innan avslut.

De flesta moderna skal har ett inbyggt kill-kommando med liknande syntax. Flaggorna --all, --pid, --queue samt möjligheten att ange processer via namn är lokala tillägg.

Om signal = 0 anges skickas ingen signal, men felkontroll görs ändå.

ARGUMENT

En lista av processer som ska signaleras kan vara en blandning av namn och PID.

pid

Kan uttryckas på följande sätt:
 * n — där n > 0. Processen med PID n signaleras.  
 * 0 — alla processer i aktuell processgrupp signaleras.  
 * -1 — alla processer med PID > 1 signaleras.  
 * -n — där n > 1. Alla processer i processgruppen n signaleras. Om formatet -n används och det avser en processgrupp måste en signal anges först, eller argumentet föregås av --, annars tolkas det som ett signalnummer.

namn

Alla processer som startats med detta namn signaleras.

FLAGGOR

Flagga Beskrivning
-s, --signal signal Skicka angiven signal, namn eller nummer.
0xmask] Lista alla signalnamn, konvertera nummer till namn eller mask till namn. Signaldefinitioner finns i /usr/include/linux/signal.h.
-L, --table Lista signalnamn tillsammans med deras nummer.
-a, --all Begränsa inte namn-till-PID-konvertering till samma UID som den aktuella processen.
-p, --pid Skriv endast PID för de namngivna processerna, skicka ingen signal.
-r, --require-handler Skicka inte signalen om den inte fångas i användarutrymmet av processen.
--verbose Skriv ut PID:er som signaleras tillsammans med signalen.
-q, --queue värde Skicka signal med sigqueue(3) istället för kill(2). värde skickas med signalen och kan tas emot i si_sigval om processen använder SA_SIGINFO.
--timeout ms signal Skicka en signal och följ upp med ytterligare signal(er) efter angivet antal millisekunder. Säkerställer att uppföljningssignalen inte skickas till återanvänd PID. Kan kombineras med --queue och anges flera gånger.

Exempel:

kill --verbose --timeout 1000 TERM --timeout 1000 KILL \
     --signal QUIT 12345
-d, --show-process-state pid Avkoda signalrelaterade fält i /proc/pid/status.

Exempel:

$ kill -d $$
Blocked: INT
Ignored: TERM TSTP TTIN TTOU
Caught: HUP INT PIPE ALRM CHLD WINCH

SLUTSTATUS

kill returnerar följande värden:

0

Lyckades.

1

Misslyckades.

64

Partiell framgång (när flera processer angavs).

ANMÄRKNINGAR

Det är möjligt att ange TID (tråd-ID, se gettid(2)) för en tråd i en multitrådad process, men signalen riktas ändå till hela processen (trådgruppen). Signalen levereras till en godtyckligt vald tråd som inte blockerar signalen. Se signal(7) och clone(2).

Olika skal tillhandahåller egna inbyggda kill. För att vara säker på att man kör det fristående programmet, använd full sökväg, t.ex.:

/bin/kill --version

FÖRFATTARE

Salvatore Valente <svalente@mit.edu>, Karel Zak <kzak@redhat.com> Originalversionen togs 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

Felrapporter skickas via: https://github.com/util-linux/util-linux/issues

TILLGÄNGLIGHET

Kommandot kill ingår i paketet util-linux, som kan hämtas från: https://www.kernel.org/pub/linux/utils/util-linux/

Projektets kod finns på: git://git.kernel.org/pub/scm/utils/util-linux/util-linux.git Manualsidans HTML-version genererades 2025-02-02.

Sidslut

Orginalhemsidan på Engelska : https://man7.org/linux/man-pages/man1/kill.1.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.