logo

Ako zabiť proces v Linuxe | Kill Command

príkaz kill v Linuxe (umiestnený v /bin/kill) je vstavaný príkaz, ktorý sa používa na manuálne ukončenie procesov. zabiť príkaz odošle signál procesu, ktorý ukončí proces. Ak používateľ nešpecifikuje žiadny signál, ktorý sa má odoslať spolu s príkazom kill, potom predvolená hodnota TERMÍN odošle sa signál, ktorý ukončí proces.

Základná syntax príkazu kill v systéme Linux

Základná syntax príkazu `kill` je nasledovná:



Syntax:

kill [signal] PID>

Tu,

np.log
  • PID = Príkaz `kill` vyžaduje ID procesu (PID) procesu, ktorý chceme ukončiť.
  • [signál] = Musíme špecifikovať signál a ak nešpecifikujeme signál, predvolený signál ` TERMÍN“. sa odošle na ukončenie procesu

Signály je možné špecifikovať tromi spôsobmi:

Signály možno špecifikovať tromi spôsobmi; sú nasledovné:



1. Podľa čísla:

Signál môžeme špecifikovať pomocou čísla. Napríklad máme PID ` 1212 ` a chcete poslať signál `SIGKILL` na zabitie tohto PID. SIGKILL má číslo signálu ` 9 ` (Ak chcete nájsť čísla signálov, spustite príkaz `kill -l`).

Syntax:

kill -9 1212>

2. S predponou SIG (napr./ -SIGkill)

Signál môžeme špecifikovať aj pomocou prefixu SIG. Napríklad musíme vyslať signál ` TERMÍN ` a PID je ` 1432 `. Na kontrolu čísla signálu `SIGTERM` môžeme použiť príkaz `kill -l`.



Syntax:

kill -SIGTERM 1432>

3. Bez predpony SIG:

Signály môžeme špecifikovať aj bez použitia prefixu SIG. Napríklad, ak chcete poslať signál ` TERMÍN“. a PID 1234 `. Na kontrolu čísla signálu `TERM` môžeme použiť príkaz `kill -l`.

Syntax:

kill -TERM 1234>

Niektoré bežné signály v príkaze na zabitie

V tabuľke nižšie sú uvedené niektoré bežné signály a ich zodpovedajúce čísla.

Názov signálu Číslo signálu Popis
VZDYCHNUTIE 1 Detegované zavesenie na riadiacich termináloch alebo smrť riadiaceho procesu.
SIGINT 2 Vyrušuje z klávesnice.
SIGKILL 9 Zabíja signál.
TERMÍN pätnásť Ukončí signál.

Na kontrolu názvu a čísla signálu môžeme použiť ` zabiť -l ` príkaz.

Možnosti a príklady príkazu kill v systéme Linux

zabiť -l Možnosť

Ak chcete zobraziť všetky dostupné signály, môžete použiť príkaz nižšie:

Syntax:

kill -l>

zabiť -l

Poznámka:

  • Záporné hodnoty PID sa používajú na označenie ID skupiny procesov. Ak odovzdáte ID skupiny procesov, signál dostane všetky procesy v rámci tejto skupiny.
  • PID -1 je veľmi špeciálne, pretože označuje všetky procesy okrem kill a init, čo je rodičovský proces všetkých procesov v systéme.
  • Na zobrazenie zoznamu spustených procesov použite príkaz ps a to vám ukáže spustené procesy s ich číslom PID. Aby sme určili, ktorý proces by mal dostať signál zabíjania, musíme poskytnúť PID.

Syntax:

ps>

ps

zabiť PID Možnosť

Táto voľba určuje ID procesu procesu, ktorý sa má zrušiť.

Syntax:

kill pid>

zabiť -s Možnosť

Táto možnosť určuje signál, ktorý sa má odoslať do procesu.

Syntax:

java reťazec poľa
kill -signal pid>

kill Command v Linuxe -časté otázky

Ako zabiť proces z príkazového riadku Linuxu?

Ak chcete zabiť proces z príkazového riadku systému Linux, môžete použiť príkazkill>za ktorým nasleduje ID procesu (PID) cieľového procesu. Napríklad na ukončenie procesu s PID 1234 by ste použili nasledujúci príkaz:

kill 1234>

V predvolenom nastavení jekill>príkaz odošle signál SIGTERM, čo umožní procesu vykonať operácie čistenia pred ukončením. Ak proces nereaguje na SIGTERM alebo ak sa vyžaduje okamžité ukončenie, môžete použiť signál SIGKILL s-9>možnosť:

kill -9 1234>

Je dôležité si uvedomiť, že násilné ukončenie procesu pomocou SIGKILL môže viesť k strate alebo poškodeniu údajov, preto sa odporúča najskôr vyskúšať SIGTERM a použiť SIGKILL iba v prípade potreby.

Ako zabiť viacero procesov naraz?

Môžeme použiť príkaz kill na zabitie viacerých procesov naraz. Potrebujeme len zadať viacero PID oddelených medzerami, alebo môžeme tiež použiť príkaz `killall` na zabitie všetkých procesov so špecifickým názvom.

Napríklad:

Ak chceme zabiť procesy PID ako 1234, 4321 a 2342, môžeme použiť nasledujúci príkaz:

kill 1234 4321 2342>

Ak chceme zabiť všetky procesy s názvom firefox. Môžeme použiť nasledujúci príkaz.

killall firefox>

Je bezpečné zabiť systémové procesy?

Nie, je dôležité poznamenať, že iba zabíjacie procesy, o ktorých vieme, že sú bezpečné a zabíjanie systémových procesov môže spôsobiť nestabilitu systému. Vždy je lepšie použiť iné metódy, ako je reštartovanie systému alebo identifikácia hlavnej príčiny problému a jej odstránenie.

Aký je rozdiel medzi SIGTERM a SIGKILL v príkaze `kill` v Linuxe?

SIGTERM, vyšle do procesu signál ukončenia, ktorý pomáha pri elegantnom ukončení. Zatiaľ čo SIGKILL posiela procesu zabíjací signál, ktorý násilne a okamžite ukončí procesy.

Napríklad:

Na odoslanie signálu `SIGTERM` a PID `4321` môžeme použiť nasledujúci príkaz.

awt java
kill -15 4321>

Na odoslanie signálu `SIGKILL` a PID `4321` môžeme použiť nasledujúci príkaz.

kill -9 4321>

Ako nájdem ID procesu (PID) konkrétneho programu v systéme Linux?

Ak chcete nájsť PID konkrétneho programu, môžete použiťpgrep>príkaz, za ktorým nasleduje názov programu. Ak chcete napríklad nájsť PID procesu firefox, zadajte:

pgrep firefox>

Aký je účelpkill>a ako sa líši od príkazukill>príkaz?

Thepkill>príkaz sa používa na odosielanie signálov procesom na základe ich názvu, čím poskytuje pohodlnejší spôsob ukončenia procesov. Líši sa odkill>tým, že používateľom umožňuje špecifikovať procesy podľa názvu a nie podľa PID.

Ako môžem skontrolovať využitie prostriedkov (CPU, pamäť) konkrétneho procesu v systéme Linux?

Ak chcete skontrolovať využitie prostriedkov konkrétneho procesu, môžete použiťtop>príkaz spolu s ID procesu (PID). Ak chcete napríklad monitorovať využitie prostriedkov procesu s PID 1234, spustili by ste:

top -p 1234>

Záver

Príkaz `kill` v Linuxe je veľmi výkonný nástroj na správu procesov. Pochopili sme rôzne spôsoby špecifikovania signálov a dostupných možností v príkaze kill, ktoré nám môžu pomôcť efektívne spravovať naše systémové prostriedky a rýchlo a efektívne riešiť problémy.