Čo je príkaz na zabitie?
Linux je pokročilý a skvelý operačný systém; nie je to však dokonalé. Niekoľko aplikácií sa môže začať správať neopatrne a stať sa necitlivými alebo začať spotrebúvať niekoľko systémových prostriedkov.
Necitlivé aplikácie nie je možné reštartovať, pretože samotný proces aplikácie nikdy úplne neskončí. Jediným riešením je reštartovanie systému alebo zastavenie procesu aplikácie.
Existujú rôzne nástroje, ktoré nám umožňujú ukončiť chybné procesy spolu s zabiť príkaz. Tento príkaz sa najčastejšie používa v systéme Linux.
In Linux , príkaz kill (umiestnený v /bin/kill) môže byť definovaný ako vstavaný príkaz.
Používa sa na manuálne ukončenie procesov. Správanie príkazu kill sa medzi shellmi a shellmi mierne líši /bin/kill samostatný spustiteľný súbor.
Na zobrazenie každého miesta v našom systéme, ktoré obsahuje kill, môžeme použiť príkaz type:
$ type -a kill
Príkaz kill prenáša signál smerom k procesu, v ktorom sa proces ďalej ukončí. Keď používateľ nepopíše žiadny signál, ktorý sa má preniesť pomocou príkazu kill, potom TERMÍN sa prenesie signál (predvolené nastavenie), ktorý ukončí proces. Ak signál nie je popísaný, potom bude štandardne nastavený - pätnásť ( -TERMÍN ).
Najčastejšie používané signály sú nasledovné:
Môžeme použiť príkaz kill spolu s -l možnosť získania zoznamu všetkých dostupných signálov:
$ kill -l
Tieto signály možno opísať tromi rôznymi spôsobmi. Tieto spôsoby sú uvedené nižšie:
- Podľa čísla (napr. -6)
- Bez predpony SIG (napr. -kill)
- S predponou SIG (napr. -SIGkill)
Nasledujúce príkazy sú si navzájom podobné:
- $ zabiť -SIGHUP PID_NUMBER
- $ zabiť -HUP PID_NUMBER
- $ zabiť -1 PID_NUMBER
PID pridelené príkazu kill môže byť ktokoľvek z nižšie uvedeného:
- Signál sa prenesie do procesu spolu s ID podobným PID, keď je PID väčšie ako nula.
- Signál sa prenesie do každého procesu v rámci aktuálnej skupiny procesov, keď sa PID rovná nule. Znamená to, že signál bude prenesený do každého procesu súvisiaceho s GID Shell, ktorý požaduje príkaz kill. Môžeme aplikovať ps -efj príkaz na zobrazenie ID skupiny procesov (GID).
- Signál sa prenesie do každého procesu spolu s podobným UID ako používateľ požadujúci príkaz, keď je PID ekvivalentné -1. Ak je žiadajúcim používateľom root, signál sa prenesie do každého procesu okrem procesu zabíjania a inicializácie.
- Signál sa prenesie do každého procesu v rámci skupiny procesov spolu s GID podobným absolútnej hodnote PID, keď je PID menšie ako -1.
Bežní používatelia sú schopní prenášať signály do svojich procesov. Nezahŕňa však používateľov, ktorí sú v spojení s iným používateľom. Na druhej strane, užívateľ root je schopný preniesť signál do procesov iného užívateľa.
- PID -1 je veľmi jedinečné, pretože označuje každý proces okrem init a kill, čo je rodičovský proces každého procesu v systéme.
- Záporné hodnoty PID sa používajú na označenie ID skupiny procesov. Keď odovzdáme akékoľvek ID skupiny procesov, každý proces v tejto skupine dostane signál.
- Na zobrazenie zoznamu bežiacich procesov môžeme použiť príkaz ps a ten nám ukáže bežiace procesy spolu s číslom PID. Musíme zadať PID na určenie, ktorý proces by mal dostať signál príkazu kill.
Syntax:
$ps
ps na: Tento príkaz sa používa na zobrazenie každého spusteného procesu spolu s ich PID a ďalšími podrobnosťami. V prípade, že nepoznáme ID procesu, môžeme použiť tento príkaz.
Možnosti príkazu kill
1. zabiť -l: Táto možnosť sa používa na zobrazenie každého existujúceho signálu, môžeme použiť nasledujúcu možnosť príkazu:
Syntax:
$kill -l
2. zabiť pida: Táto možnosť sa používa na zobrazenie spôsobu použitia PID spolu s príkazom kill.
Syntax:
$kill pid
3. zabiť -L: Príkaz kill -L možno použiť na výpis existujúcich signálov vo formáte tabuľky.
Syntax:
/bin/kill -L
4. Preložiť číslo signálu: Akékoľvek číslo signálu môžeme jednoducho preložiť na názov signálu pomocou nasledujúceho príkazu:
/bin/kill --list=12