V podstate existujú 4 spôsoby de matar efektívne a proces en linux: zabiť ho menom, určiť časť názvu, PID, ukazovať kurzorom myši na okno procesu. Pozrime sa jeden po druhom ... |
Index
Zabiť: zabiť proces pomocou jeho PID
Najkomplikovanejším, ale zároveň najpresnejším spôsobom usmrtenia procesu je jeho PID („Identifikátor procesu“). Môže slúžiť ktorákoľvek z týchto 3 variantov:
zabiť -TERM pid zabiť -SIGTERM pid zabiť -15 pid
Môžete použiť názov signálu (TERM alebo SIGTERM), ktorý chcete odoslať do procesu, alebo jeho identifikačné číslo (15). Ak chcete zobraziť úplný zoznam možných signálov, navrhujem skontrolovať manuál zabitia. Ak to chcete urobiť, spustite:
zabiť človeka
Pozrime sa na príklad, ako zabiť Firefox:
Najskôr musíte zistiť PID programu:
ps -ef | grep firefox
Tento príkaz vráti niečo také:
1986? Sl 7:22 /usr/lib/firefox-3.5.3/firefox
Na ukončenie procesu používame PID vrátený vyššie uvedeným príkazom:
zabiť -9 1986
killall: zabije proces pomocou jeho názvu
Tento príkaz je veľmi jednoduchý
killall názov_procesu
Pri použití tejto metódy je treba mať na pamäti, že ak je spustený viac ako jeden inštančný program, všetky sa zatvoria.
pkill: zabiť proces pomocou časti jeho názvu
Je možné zabiť proces zadaním celého mena alebo časti mena. To znamená, že si nemusíte pamätať procesný PID na odosielanie signálu.
pkill part_process_name
Na oplátku táto metóda zabije všetky procesy, ktoré obsahujú zadané slovo. To znamená, že ak máme otvorené dva procesy, ktoré zdieľajú v názve slovo, oba budú uzavreté.
xkill: zabiť proces výberom okna myšou
Toto je najjednoduchšia a najpraktickejšia metóda. V prípade katastrofy jednoducho stlačte kombináciu klávesov Alt + F2 a otvorte dialógové okno, ktoré vám umožní vykonávať príkazy. Odtiaľ spustite nasledujúci príkaz:
xkill
Kurzor myši sa zmení na malú lebku. Zostáva iba kliknúť na okno, ktoré chcete zavrieť, a voila. Ahoj proces.
Niekoľko záverečných komentárov
Na záver by som sa chcel podeliť o niekoľko rád, ktoré by mohli byť užitočné. V systéme Linux, rovnako ako v systéme Windows, ak proces zablokuje, príslušné okno je možné obvykle zavrieť kliknutím na tlačidlo Zavrieť (v tvare písmena X). Po niekoľkých sekundách sa objaví okno s otázkou, či skutočne chceme proces zabiť, pretože nereaguje správne. Hovoríme áno a je to.
To znamená, že tu opísané metódy by sa mali použiť, keď sa po kliknutí na tlačidlo Zavrieť v príslušnom okne nič nestane.
V prípade veľkej katastrofy nezabudnite, že pred stlačením je možné vykonať a „bezpečný“ reštart.
Nakoniec môže byť veľmi užitočné zistiť, ktoré procesy sú momentálne spustené. Na tento účel majú rôzne desktopové prostredia (GNOME, KDE atď.) Grafické nástroje, ktoré uľahčujú túto úlohu. Ak k nim však nemáte prístup alebo ak to chcete jednoducho urobiť z terminálu, môžete vykonať nasledovné:
top
V prípade, že to nefunguje alebo nemáte nainštalovaný zodpovedajúci balík, môžete kedykoľvek spustiť:
ps -A
Zobrazí sa zoznam všetkých spustených procesov spolu s ich príslušnými názvami a PID.
22 komentáre, nechajte svoj
«Ps -ef | „grep firefox“ nie je to isté ako „pgrep firefox“?
Osobne používam program „pidof“ na získanie PID.
Zdravím!
čo používam najviac je:
~ $ top
keď nám zobrazíte zoznam aktívnych procesov, potom ak klikneme na „k“ alebo napíšeme „kill“, požiada nás o pid procesu, ktorý má byť zabitý (čítame ho zhora) a potom vstúpime, hore opustíme stlačením klávesu „q“.
Veľmi dobrý vstup, ale táto forma sa mi zdá jednoduchšia. Pokiaľ terminál nefunguje, skúsime to pomocou ctrl + alt + f [1-6] a urobíme to odtiaľ.
Čo geniálni chlapci ďakujem, že mi pomohli, mi dalo skvelú ruku s týmto príspevkom !!!
Ahoj! Je možné, že príkaz xkill spôsobí, že program X zmizne a je stále otvorený? Pretože sa mi vždy stane, že keď idem k správcovi úloh, proces je stále nažive a musím ho zabiť.
Priznávam, som veľmi nováčik. A príkazy killall a pkill mi veľmi pomôžu. Ďakujeme za nahranie, veľmi dobrý blog.
Zdravím!
Odporúčam htop 😀 na to je to najlepšie ...
pracuje s ncurses
sudo apt-get nainštalovať htop
pidof nie je pre všetky Unixy, napríklad Solaris nemá tento príkaz a vedie nás k používaniu mocného ps.
pozdravy
htop je podrobnejší a užívateľsky prívetivejší
V prípade použitia PID je správna vec $ kill PID, ktorá štandardne vysiela signál SIGTERM, v prípade, že proces nereaguje, použije sa $ kill -9 PID, ktorý vyšle signál SIGKILL, druhý proces eliminuje bez toho, aby ho nechal rovnaké uzavretie správne (môže dôjsť napríklad k strate údajov). SIGTERM sa pýta, prosím, SIGKILL mu dá sekeru 🙂
Ďakujem pekne, otestujem, či sa mi to stane znova.
dopyt. Keď desktopové prostredie visí v Ubuntu (používam Unity), je možné ho reštartovať bez zabitia všetkých ostatných procesov? Nie som veľmi pokročilý v linuxe a občas sa mi stane, že pracujem a visí to, jediné, čo urobím, je bezpečný reštart, ale stratím všetko, na čom som pracoval.
Neviem, či sú moje pochybnosti pochopené.
pozdravy
Proces v stave zombie nemožno zabiť tradičným spôsobom.
Tu nájdete ďalšie podrobnosti: esdebian.org/wiki/matar-proceso-zombie
Ako pre tých pokročilejších ako zabijete proces v stave ZOMBIE?
len na vygenerovanie malého chatu 😀
Veľmi dobré, presne to, čo som potreboval ..
Pravdou je, že príkaz kill je veľmi užitočný. Byť schopný zabiť nepríjemné procesy iba vyvolaním zabitia je skvelé. Konečne príkaz, ktorý niečo slúži.
Teoretická otázka: Zabitie procesu znamená, že prestane fungovať. Moja otázka je teda opačná, ak chcem znova spustiť ten proces, ktorý som zabil, ako to urobím?
dáte dobre ./(názov procesu) &
Týmto to spustíte znova a vyjde aj váš PID 😀
Výborne, mal som čas hľadať takúto pomoc. Bolo to pre mňa veľmi užitočné. Ďakujem pekne za zdieľanie.
Zdravím vás z mesta San Luis Potosí v Mexiku.
Ako môžem zabiť dva procesy, ktoré poznajú ich PID, v rovnakom príkaze?
Myslím, že to bolo „zabiť [prvé PID] [druhé PID]
Veľmi zaujímavý článok. Táto webová stránka je môj hlavný web pre linux.
Spravidla používam:
ps sekera | grep názov_procesu (slúži na jeho vyhľadanie v systéme)
kill -9 process_id
Zdieľam bezplatný online kurz bash, ktorý obchádza:
https://aprendemia.com/cursos/curso-de-bash-scripting Dúfajme, že to bude užitočné.
a keby som chcel, aby to bol profil v linuxe, tak iba ten, ktorý sa zatvára tak, ako má byť?
príklad mám otvorené 2 profily Firefoxu
ale chcem, aby sa zavrel iba jeden profil
profil 1
profil 2
Chcem, aby sa uzavrel iba profil 2, ako by mal byť príkaz
vopred dakujem za odpoved
Ako môžem zabiť procesy popredia ubuntu pomocou jediného príkazového riadku