Linux: ako zabiť proces pomocou terminálnych príkazov

Predstavte si, že ste spustili program, pracujete s ním a po chvíli prestane reagovať na požiadavky a visí. Aplikáciu nemožno znova spustiť, pretože jej kópia stále visí v pamäti počítača. Čo robiť v tomto prípade? Najprv musíte vypnúť program a odstrániť proces z pamäte. Najjednoduchší a najuniverzálnejší spôsob, ako zabiť proces v systéme Linux, je používať terminálové príkazy. Táto možnosť bude fungovať na ľubovoľnej distribúcii Linuxu.

Procesy v systéme Linux

V operačnom systéme Linux sa proces zvyčajne nazýva spustený program alebo program. Proces sa môže nazývať aj akoukoľvek úlohou, ktorú práve používa Linux. Každý spustený proces môže bežať dieťa.


Všetky procesy bežiace na Linuxe majú nasledujúce atribúty:
  • PID je jedinečný identifikátor pre každý proces.
  • PPID je identifikátor rodičovského procesu.
  • ID používateľa, ktorý spustil proces.
  • Priorita.
  • Stav procesu.
  • Každý spustený proces sa nachádza v jednom zo stavov:
  • "Vykonávanie". Na označenie tohto stavu sa používa písmeno R.
  • Proces, ktorý spustil prevádzku systému, napríklad vstupné alebo výstupné údaje a čaká na dokončenie, sa nazýva "očakávania". Ovplyvnené písmenom S.
  • Proces zastavený používateľom alebo operačným systémom Linux je "zastavený". Tento stav je označený symbolom T.
  • "Zombie" sú procesy, ktoré už nie súSpustitelné, ale náročné zdroje operačného systému. Označené písmenom Z.
  • Nepretržitý proces je možné dokončiť až po dokončení operácie priameho prístupu v pamäti. Proces je označený ako D.
  • Vyhľadávanie procesov

    Predtým, než sa pokúsite zabiť proces, musíte ho najprv nájsť. Často na tento účel Linux používa dva príkazy top a ps.


    Pomocou príkazu top

    Príkaz top zobrazuje úplný zoznam aktuálnych procesov. Okrem toho obsahuje zoznam veľa užitočných informácií o každom bežiacom procese, napríklad:
  • PID - jedinečné číslo procesu;
  • USER je prihlasovacie meno používateľa, ktoré spustilo tento proces;
  • PR - priorita procesu v danom čase;
  • NI - priorita pridelená tomuto procesu tímom NICE;
  • S je stav tohto procesu;
  • % CPU - koľko procesu procesora trvá (v percentách);
  • % MEM - množstvo RAM, ktoré tento proces trvá (v percentách);
  • TIME + - koľko času uplynulo od začiatku procesu;
  • COMMAND - Program, ktorý spustil proces.
  • Zobrazia sa informácie poskytnuté príkazom "top" zoradené podľa úrovne použitého procesora (stĺpec% CPU). Užívateľ môže zmeniť poradie triedenia:
  • triedenie procesov o množstvo obsadenej pamäte (stĺpec% MEM) musíte stlačiť kombináciu klávesov Shift + M;
  • možno triediť podľa čísla procesu (stĺpec PID) pomocou kombinácie Shift + N;
  • triediť podľa času (stĺpec TIME +) - Shift + T.
  • späť napočiatočné zoradenie podľa úrovne zaťaženia CPU - stlačte kombináciu Shift + P.
  • použite príkaz ps

    s horným tím môže získať veľa potrebných informácií, ale to nie je najvhodnejší spôsob, ako získať potrebné informácie, ktoré potrebujete na spracovanie. Môžete použiť príkaz ps a filtrovať zoznam pomocou príkazu greep, aby ste sa vyhli hľadaniu požadovaného procesu. Ak chcete napríklad nájsť všetky procesy spojené s chodom prehliadača Opera, môžete zadať príkaz ps Achsu | grep Mozilla.
    Príkaz ps má nasledujúce parametre:
  • a - zobrazenie procesov pre všetkých používateľov;
  • u - zobrazenie používateľa, ktorý proces vlastní;
  • x - zobrazujú procesy, ktoré nie sú viazané na terminál. Táto možnosť je dôležitá pri hľadaní informácií o grafickej aplikácii.
  • S komunikačné príkazy ps a grep môžete získať všetky informácie potrebné k zničeniu aplikácie zavesenie.

    Iné spôsoby vyhľadávania procesu

    Na nájdenie procesu PID podľa jeho mena je príkaz pidof. Formát jeho použitia je nasledujúci: pidof + názov programu. Ak chcete napríklad nájsť všetky PID, týkajúce sa aplikácie Opera, musíte zadať: pidof opery. V niektorých prípadoch sa stane, že program dokončil jeho vykonanie, ale neuvoľnil sieťový port. Pre informáciu, v tomto prípade je nutné zadať príkaz zapekacej: fixačné -vn tcp 80. V prípade, že 80 - počet visí port. Potom môžete na portu zabiť proces Linuxu.

    Dokončenie procesu pomocou kill

    Potom, čo ste sa naučili procese PID a jeho názovspustite operáciu na dokončenie nepotrebného programu. Ak to chcete urobiť, použite dva príkazy: kill - zablokujte id proces Linux a killall - dokončite program podľa názvu.
    Štruktúra príkazu kill: kill SIGNAL PID. Kde je signálom SIGNAL, ktorý sa má odoslať, a PID je ID procesu.
    Parameter SIGNAL pre dokončenie procesu je 9 (SIGKILL). Aby sme zabili proces pid v systéme Linux, musíte zadat príkaz: kill -99578. Kde 9578 je jedinečné číslo procesu. Príkaz dokončenia nie je jediný, ktorý možno odoslať pomocou aplikácie zablokovania systému. Získajte zoznam všetkých príkazov, ktoré môžu byť odoslané do príkazu pomocou kill, zadaním príkazu kill -l.
    ​​Je tiež užitočné zistiť ďalšie hodnoty, ktoré môže parameter SIGNAL prijať. Napríklad môžete použiť parameter HUP na opätovné načítanie obmedzeného programu. Signál SIGTERM neprerušuje program okamžite, ale poskytuje čas na správne vypnutie, to znamená, že program uloží dáta, dokončí jeho vykonanie a oslobodí všetky obsadené zdroje.

    Ako zabiť proces v systéme Linux podľa mena

    Ak poznáte názov programu, ktorý chcete spustiť, môžete použiť príkaz killall. Ak chcete napríklad zničiť všetky procesy, ktoré súvisia s aplikáciou Opera, musíte zadať príkaz: killall -9 Opera.
    Tento tím však nie vždy dokončí procesy týkajúce sa zničeného programu. Ak po vykonaní vyššie uvedeného príkazu zadáte kombináciu ps aux | | grep Opera a uvidíte, že niektoré procesy sú stále spustené, je najlepšie ich dokončiť pomocou zabíjania systému. vV niektorých prípadoch môže zabrániť tomu, aby proces, ktorý beží v systéme Linux iným používateľom, mohol vyžadovať oprávnenia správcu. Potom pred dokončením procesu príkazu musíte zadať príkaz sudo. Tu sú všetky informácie, ktoré používateľ potrebuje na riadenie procesov. Je pravda, že táto téma nie je pre začiatočníkov jednoduché, ale musíte ju zvládnuť, pretože všetky činnosti operačného systému sa vykonávajú prostredníctvom procesov. Ak sa chcete dozvedieť, ako ich spravovať, musíte pracovať trochu.

    Súvisiace publikácie