Všetci sme zažili tie dni, keď náš počítač beží výnimočne pomaly a zadrháva pri vykonávaní aj tých základných úloh. V systéme Windows máte k dispozícii iba Správcu úloh systému Windows na kontrolu a zabíjanie procesov, ktoré nie sú také dôležité, ale spotrebúvajú obrovské množstvo pamäte. V Linuxe však máte k dispozícii celý arzenál príkazov a nástrojov GUI na správu týchto úloh. V tomto článku ukážeme niekoľko jednoduchých metód príkazového riadka (CLI), ako aj metódy GUI, ako zabiť proces v systéme Linux.
Ukončiť proces v systéme Linux (2023)
Ale predtým, než sa ponoríme do sveta procesného manažmentu v Linuxe, pochopme, čo presne je proces a čo je ID procesu v systémoch Linux.
Obsah
Čo sú procesy v Linuxe
V Linuxe je každá aktuálne spustená inštancia programu známa ako „proces“, zatiaľ čo každý spustiteľný súbor je známy ako program. Keď sa spustí akýkoľvek program, vytvorí sa proces a každému procesu sa pridelí jedinečné 5-miestne identifikačné číslo známe ako „ID procesu“. Keď proces dokončí vykonávanie alebo je násilne ukončený, jeho ID procesu sa pridelí ďalšiemu procesu v poradí.
Zabi proces cez príkazový riadok v systéme Linux
Aj keď sa používanie terminálu môže niekedy zdať zastrašujúce v porovnaní s používaním nástrojov GUI na základné úlohy, spravovanie rôznych procesov bude oveľa jednoduchšie, keď pochopíte príkazy a ich rôzne možnosti.
Signály ukončenia
Keď sa pokúsite zabiť proces buď z GUI alebo CLI v Linuxe, jadro vyšle do procesu signál ukončenia. Proces sa správa podľa toho v závislosti od prijatého signálu. Každému z týchto signálov je priradené špecifické číslo, ktoré program rýchlo pochopí. Existuje mnoho typov ukončovacích signálov, ale tu sme vysvetlili len tie podstatné:
Signál | Číselná hodnota | Popis |
---|---|---|
SIGHUP | 1 | Je to skratka pre „Signal Hangup“ Odošle sa, keď je terminál zatvorený. |
SIGINT | 2 | Znamená „prerušenie signálu“ Odošle sa, keď používateľ ukončí proces. |
SIGKILL | 9 | Je to skratka pre „Signal Kill“ Odošle sa, keď potrebujete okamžite ukončiť proces |
SIGTERM | 15 | Znamená „ukončenie signálu“ Odošle sa, keď potrebujete ukončiť proces a uvoľniť spotrebované prostriedky |
SIGSTOP | 19 – pre ARM, x86 17 – pre ALPHA 23 – pre MIPS 24 – pre PA-RISC |
Znamená to „Signal Stop“ Odošle sa, keď potrebujete pozastaviť proces a obnoviť ho neskôr |
Identifikujte ID procesov
Pred ukončením procesu musíte poznať niektoré podrobnosti o procese, ako je ID procesu, čas behu atď. Ak chcete zistiť podrobnosti o procese, použite ps
príkaz:
ps
Pomocou príkazu ps musíte proces vyhľadať posúvaním a poznamenaním si jeho názvu, čo môže byť ťažkopádne. Namiesto toho môžete dokonca použiť grep
príkaz s ps
príkaz v potrubí, ako je znázornené nižšie:
ps | grep
Aby to bolo jednoduchšie, existuje samostatný príkaz, ktorý zobrazuje iba ID procesu akéhokoľvek spusteného procesu, ktorý potrebujete vedieť. Syntax, ktorá sa má použiť pidof
príkaz je:
pidof
Ukončite proces pomocou príkazu kill
Keď ste si poznamenali ID procesu procesu, ktorý chcete ukončiť, najbežnejším príkazom používaným na ukončenie programov vo vašom systéme Linux je príkaz kill. Syntax na použitie príkazu kill je:
kill
The parameter je voliteľný a príkaz kill štandardne odosiela signál SIGTERM (15). Akýkoľvek iný signál môžete odoslať podľa jeho číselnej hodnoty alebo skutočného názvu signálu z tabuľky vyššie.
Ukončiť proces pomocou príkazu pkill
Ak máte pocit, že hľadanie ID procesu je nepohodlné, môžete použiť príkaz pkill. Hľadá procesy zodpovedajúce vzoru a potom ho zabije. Syntax na použitie príkazu pkill je:
pkill
Niektoré z bežných možností spárovania s príkazom pkill sú:
Možnosť | Popis |
---|---|
-n |
Vyberie len najnovšie procesy zodpovedajúce ID procesu |
-u |
Vyberá procesy, ktoré vlastní konkrétny používateľ |
-x |
Vyberá procesy, ktoré presne zodpovedajú vzoru |
Toto je obzvlášť dôležité, keď viacerí používatelia pracujú na rôznych inštanciách toho istého programu v rovnakom systéme a jedna z inštancií sa začne správať neočakávane. Napríklad na nižšie uvedenej snímke obrazovky zabíjame inštanciu „gedit“, ktorú vlastní používateľ „intel“ pomocou príkazu pkill v systéme Linux:
pkill -u intel gedit
Ukončite proces pomocou príkazu killall
The killall
príkaz funguje podobne ako príkaz kill
príkaz, ale zabije všetky procesy zodpovedajúce názvu procesu bez ohľadu na používateľa. V predvolenom nastavení odosiela signál SIGTERM ak nie je uvedené inak. Zaujímavosťou je poznamenať, že killall
príkaz sa nikdy nemôže zabiť, ale môže ukončiť iné inštancie príkazu killall
príkaz. Syntax, ktorá sa má použiť killall
príkaz je:
killall
Niektoré z možností spárovania s príkazom killall sú:
Možnosť | Popis |
---|---|
-r |
Interpretuje process_name ako vzor regulárneho výrazu a potom zabije procesy zodpovedajúce vzoru |
-u |
zabije zadaný proces vlastnený zadaným vlastníkom. |
-o |
Zabije špecifikované procesy staršie (začaté predtým) ako v určitom čase. |
-y |
Zabije špecifikované procesy mladšie (spustené po) konkrétnom čase. |
Príkaz killall môže byť užitočný na ukončenie série rovnakých procesov alebo dokonca všetkých procesov vlastnených konkrétnym vlastníkom. Tu v našom príklade zabíjame všetky procesy „spánku na 500 sekúnd“ pomocou príkazu killall v systéme Linux:
killall -v sleep
Ukončite proces Linux pomocou príkazu top/htop
Táto metóda zabíjania procesov je užitočná, keď nemáte potuchy, ktoré procesy spotrebúvajú maximum zdrojov. V oboch príkazoch môžete prechádzať všetkými bežiacimi procesmi alebo dokonca zombie procesmi a môžete ich rýchlo ukončiť. Ak chcete použiť príkaz top na monitorovanie zdrojov, použite syntax v termináli:
top
Pochopenie výstupu:
Hlavný výstup príkazu top je rozdelený do stĺpcov, ktoré sú:
- PID – zobrazuje ID procesu spusteného procesu
- Používateľ – ukazuje vlastníka procesu
- PR – zobrazuje hodnotu priority procesu, ktorú prideľuje operačný systém
- NI – zobrazuje pekné hodnoty, ktoré sú ako priraďovanie užívateľsky rozmiestnených hodnôt na manuálne ovládanie priority úlohy.
- VIRT – zobrazuje množstvo virtuálnej pamäte, ktorú proces využíva.
- OZE – zobrazuje množstvo fyzickej pamäte, ktorú proces využíva
- SHR – zobrazuje množstvo pamäte zdieľanej inými procesmi
-
S – zobrazuje aktuálny stav procesu, ktorý môže byť:
- D – neprerušovaný spánok
- R – beh
- S – spánok
- T – zastavené
- Z – zombie
- %CPU – Zobrazuje množstvo CPU využívaného procesom v percentách
- % MEM – Zobrazuje množstvo pamäte RAM využívanej procesom v percentách
- TIME+ – Zobrazuje celkový čas behu procesu
- Príkaz – Zobrazuje, ktorý príkaz bol pre proces vyvolaný.
Ak nepoznáte ID procesu úlohy, ktorú chcete zrušiť, prejdite v zozname pomocou klávesov so šípkami alebo vyhľadajte názov procesu v tabuľke procesov v systéme Linux.
Ak chcete vyhľadať názov procesu, stlačte „L“ na klávesnici a zadajte názov procesu, ktorý chcete vyhľadať. Akonáhle nájdete hanebný proces, stlačte „k“ na klávesnici, aby ste proces ukončili. Teraz zadajte ID procesu alebo ho nechajte na aktuálne zvýraznenom procese a stlačte „ENTER“. Potom zadajte signál ukončenia a potom stlačte „ENTER“, aby ste ukončili program. Ak sa chcete vrátiť späť do terminálu, stlačte kláves „q“ na klávesnici.
Napriek tomu top
príkaz zobrazuje podrobnosti, ako je ID procesu, spotreba pamäte a ďalšie pre všetky spustené procesy, nie je vhodný pre začiatočníkov, pretože nezobrazuje žiadne mapovania kľúčov ani spôsob jeho použitia. Na druhej strane, a htop
príkaz má užívateľsky prívetivejšie rozhranie, aj pre nástroj príkazového riadku. Navyše zobrazuje všetky podrobnosti v samostatnom zobrazení, a preto nezaťažuje okno terminálu. Vo väčšine distribúcií nie je predinštalovaný a na inštaláciu musíte použiť nasledujúci príkaz htop
v Linuxe:
sudo apt install -y htop
Ak chcete použiť htop na správu procesov v systéme Linux, použite príkaz nižšie:
htop
Ak chcete ukončiť program, prejdite na názov procesu, ktorý chcete ukončiť, stlačte „F9“ a potom stlačte kláves Enter. Ak potrebujete vyhľadať a zabiť akýkoľvek program, stlačte na klávesnici „F3“, zadajte názov a stlačte Enter. The názov procesu bude zvýraznený, stlačte F9 a potom stlačte kláves Enter na klávesnici, čím proces ukončíte.
Zabi proces cez System Monitor v Linuxe
Ak máte pocit, že metóda príkazového riadka je pre vás náročná, môžete použiť vstavaný nástroj na monitorovanie systému, ktorý je dostupný v každej distribúcii Linuxu. Ak sa chcete dozvedieť, ako to funguje, otvorte nástroj na monitorovanie systému z ponuky Aplikácie a postupujte podľa nižšie uvedených krokov.
1. Po otvorení nástroja na monitorovanie systému uvidíte v hornej časti tri karty s názvom — Procesy, Zdroje a Systém súborov. Ak chcete spravovať svoje procesy, prejdite na stránku Karta „Procesy“.. Tu uvidíte všetky vaše aktuálne spustené procesy. Ak chcete vyhľadať názov procesu, stlačte „CTRL+F“. Kliknite na názov procesu, ktorý chcete ukončiť, a kliknite na „Ukončiť proces“.
2. Potom sa zobrazí výzva na potvrdenie, či chcete proces ukončiť alebo nie. Pokračujte a kliknite na veľké červené tlačidlo „Ukončiť proces“, čím ukončíte proces v systéme Linux.
často kladené otázky
Ako zastavím všetky procesy v Linuxe?
Ak potrebujete zastaviť všetky procesy (okrem prihlasovacieho shellu, init a procesov špecifických pre jadro) pre konkrétneho používateľa v systéme Linux, použite buď príkaz pkill alebo príkaz killall podľa syntaxe:
pkill -u
killall -u
Ak potrebujete zabiť každý proces pre každého používateľa vrátane init systému, stlačte klávesy „ALT + Prt Sc + o“ na klávesnici.
Je v poriadku ukončiť proces?
Keď zatvoríte akýkoľvek nepodstatný proces na pozadí alebo používateľský proces, ktorý spotrebúva veľa systémovej pamäte, uvoľníte zdroje, ktoré teraz môžu využiť iné procesy. Pred vypnutím akéhokoľvek procesu sa však uistite, že nezabíjate dôležitý proces operačného systému.
Aké sú procesy na pozadí v systéme Linux?
V Linuxe sú procesy na pozadí procesy, ktoré môžu bežať bez inštancie shellu alebo akéhokoľvek zásahu používateľa. Možno ich zobraziť pomocou ktoréhokoľvek z príkazov – top, htop, ps atď.
Čo je proces zombie?
Proces, ktorý bol zabitý používateľom, ale stále zaberá pamäť, sa nazýva zombie proces.
Čo robí CTRL + Z v Linuxe?
Keď v Linuxe použijete CTRL + Z, odošle signál SIGTSTP, ktorý pozastaví proces a odošle ho na pozadí. Keď je proces na pozadí v pozastavenom stave, nemôžete ho zabiť, kým sa nedostane späť do popredia.
Zabíjajte procesy v Linuxe jednoducho
Zabíjanie procesov zabíjania pamäte je celkom zásadná úloha, ktorú by sa mal naučiť každý používateľ. V tomto článku sme ukázali metódu príkazového riadku vrátane príkazov ako killall a pkill, ako aj metódy GUI na zabíjanie procesov v systéme Linux. Dokonca sme podrobne popísali, ako používať populárne nástroje ako top a htop na správu procesov na vašom počítači so systémom Linux. Ak narazíte na nejaké problémy pri používaní týchto nástrojov na zabitie procesu, dajte nám vedieť v komentároch nižšie.
Odporúčané články
Naozaj pekné a jednoduché vysvetlenie. Stojí za prečítanie. len tak ďalej!!!
Odpovedzte