Skip to main content

Ako zabiť procesy pomocou Linux

Anonim

Väčšinu času budete chcieť, aby sa program ukončil vlastnými prostriedkami, alebo ak ide o grafickú aplikáciu, pomocou príslušnej možnosti ponuky alebo pomocou kríža v rohu.

Každá tak často bude program visieť, v takom prípade budete potrebovať spôsob, ako ju zabiť. Môžete tiež chcieť zabiť program, ktorý beží na pozadí, ktorý už nemusíte spúšťať.

Táto príručka poskytuje spôsob zabitia všetkých verzií tej istej aplikácie, ktoré sú spustené v systéme.

Ako používať príkaz killall

Príkaz killall zabije všetky procesy podľa názvu. To znamená, že ak máte tri verzie toho istého programu, príkaz killall zabije všetky tri.

Otvorte napríklad malý program, ako je napríklad prehliadač obrázkov. Teraz otvorte ďalšiu kópiu toho istého prehliadača obrázkov. Pre môj príklad som si vybral Xviewer, ktorý je klonom Eye of Gnome.

Teraz otvorte terminál a zadajte nasledujúci príkaz:

zabiť všetkých

Ak chcete napríklad zabiť všetky inštancie typu Xviewer, postupujte nasledovne:

killall xviewer

Oba prípady programu, ktorý ste si vybrali zabiť, sa teraz zatvoria.

Zabite presný proces

killall môže spôsobiť podivné výsledky. Tu je jeden z dôvodov, prečo. Ak máte meno príkazu, ktoré má dlhšie ako 15 znakov, potom príkaz killall bude pracovať iba s prvými 15 znakmi. Ak máte teda dva programy, ktoré zdieľajú rovnaké prvých 15 znakov, oba programy budú zrušené, aj keď ste ich chceli len zabiť.

Ak sa chcete o tom dozvedieť, môžete zadať nasledujúci prepínač, ktorý zabije iba súbory zodpovedajúce presnému názvu.

killall -e

Ignorovanie prípadov pri zabíjaní programov

Aby ste sa uistili, že príkaz killall ignoruje prípad názvu programu, ktorý zadáte, použite nasledujúci príkaz:

killall -Ikillall - príp

Zabite všetky programy v rovnakej skupine

Pri spustení príkazu, ako je nasledujúci, vytvorí dva procesy:

ps -ef | menej

Jeden príkaz je pre časť ps -ef, ktorá obsahuje zoznam všetkých bežiacich procesov vo vašom systéme a výstup je pipetovaný na menej príkaz.

Obidva programy patria do rovnakej skupiny, ktorá je bash.

Ak chcete obe programy zabiť naraz, môžete spustiť nasledujúci príkaz:

killall -g

Napríklad, aby ste zabili všetky príkazy bežiace v bash shell, spustite nasledovné:

killall -g bash

Mimochodom, aby ste vymenovali všetky bežiace skupiny, spustite nasledujúci príkaz:

ps -g

Získanie potvrdenia pred zabitím programov

Je zrejmé, že príkaz killall je pomerne mocný príkaz a nechcete nechtiac zabiť nesprávne procesy.

Pomocou nasledujúceho prepínača sa zobrazí otázka, či ste si istí, či je každý proces zabitý.

killall -i

Zabite procesy, ktoré boli spustené za určitú dobu

Predstavte si, že ste spustili program a trvá oveľa dlhšie, ako ste dúfali.

Príkaz môžete zabiť nasledujúcim spôsobom:

killall -o h4

H vo vyššie uvedenom príkaze predstavuje hodiny.

Môžete tiež zadať niektorú z nasledujúcich možností:

  • s - sekundy
  • m - minúty
  • h - hodiny
  • d - dni
  • w - týždne
  • M - mesiace
  • y - roky

Prípadne, ak chcete zabiť príkazy, ktoré sa práve spustili, môžete použiť nasledujúci prepínač:

killall -y h4

Tentokrát príkaz killall zabije všetky programy spustené menej ako 4 hodiny.

Nehovorte mi, keď proces nie je zabitý

Predvolene, ak sa pokúsite zabiť program, ktorý nie je spustený, dostanete nasledujúcu chybu:

programname: žiadny proces nebol nájdený

Ak nechcete, aby vám bolo povedané, či sa proces nenašiel, použite nasledujúci príkaz:

killall -q

Použitie pravidelných výrazov

Namiesto zadania názvu programu alebo príkazu môžete určiť regulárny výraz tak, aby všetky procesy, ktoré zodpovedajú regulárnemu výrazu, boli zatvorené príkazom killall.

Ak chcete použiť regulárny výraz, použite nasledujúci príkaz:

killall -r

Zabíjanie programov pre zadanie užívateľa

Ak chcete zabiť program, ktorý je spustený konkrétnym používateľom, môžete zadať nasledujúci príkaz:

killall -u

Ak chcete zablokovať všetky procesy pre konkrétneho používateľa, môžete vynechať názov programu.

Počkať na killall Dokončiť

V predvolenom nastavení sa killall vráti priamo späť na terminál, keď ho spustíte, ale môžete donútiť killall počkať, kým všetky zadané procesy nebudú ukončené predtým, než vás vrátime do okna terminálu.

Ak to chcete urobiť, spustite nasledujúci príkaz:

killall -w

Ak program nikdy neumrie, potom killall bude aj naďalej žiť.

Signály Signály Signály

V predvolenom nastavení príkaz killall vyšle signál SIGTERM do programov, aby ich zavrel a je to najčistejší spôsob zabíjania programov.

Existujú však ďalšie signály, ktoré môžete odoslať pomocou príkazu killall a môžete ich zadať pomocou nasledujúceho príkazu:

killall -l

Vrátený zoznam bude takto:

  • HUP
  • INT
  • KONIEC
  • ILL
  • TRAP
  • Abrt
  • IOT
  • BUS
  • FPE
  • KILL
  • USR1
  • SEGV
  • USR2
  • RÚRA
  • ALRM
  • TERM
  • STKFLT
  • Odemk.dět
  • CONT
  • STOP
  • TSTP
  • TTIN
  • TTOU
  • URG
  • XCPU
  • XFSZ
  • VTALRM
  • PROG
  • WYNCH
  • IO
  • PWR
  • SYS
  • UNUSED

Tento zoznam je mimoriadne dlhý. Ak chcete čítať o tom, čo znamenajú tieto signály, spustite nasledujúci príkaz:

signál človeka 7

Všeobecne by ste mali používať predvolenú možnosť SIGTERM, ale ak program odmietne zomrieť, môžete použiť program SIGKILL, ktorý núti program ukončiť, aj keď nedôverným spôsobom.

Iné spôsoby, ako zabiť program

Existuje 5 ďalších spôsobov, ako zabiť aplikáciu Linux, ako je to zdôraznené v prepojenej príručke.

Ak chcete ušetriť úsilie kliknutím na odkaz tu je časť, ktorá ukazuje, čo sú tieto príkazy, prečo by ste mohli použiť tieto príkazy cez killall.

Prvým z nich je príkaz kill. Príkaz killall, ako ste videli, je skvelý pri zabíjaní všetkých verzií toho istého programu. Príkaz kill je navrhnutý tak, aby naraz zabíjal jeden proces a je preto viac zameraný.

Ak chcete spustiť príkaz kill, potrebujete poznať ID procesu procesu, ktorý chcete zabiť. Na to môžete použiť príkaz ps.

Ak napríklad chcete nájsť bežiacu verziu Firefoxu, môžete spustiť nasledujúci príkaz:

ps -ef | grep firefox

Zobrazí sa riadok údajov na príkaz / usr / lib / firefox / firefox na konci. Na začiatku riadku uvidíte vaše ID užívateľa a číslo po ID užívateľa je ID procesu.

Pomocou ID procesu môžete zabiť Firefox spustením nasledujúceho príkazu:

zabiť -9

Ďalším spôsobom, ako zabiť program, je príkaz xkill. To sa zvyčajne používa na zablokovanie chybných grafických aplikácií.

Ak chcete zablokovať program, ako je napríklad Firefox, otvorte terminál a spustite nasledujúci príkaz:

xkill

Kurzor sa teraz zmení na veľký biely kríž. Umiestnite kurzor na okno, ktoré chcete zabiť, a kliknite ľavým tlačidlom myši. Program sa okamžite skončí.

Ďalší spôsob, ako zabiť proces, je použitie príkazu Linux top. Príkaz top obsahuje zoznam všetkých bežiacich procesov vo vašom systéme.

Jediné, čo musíte urobiť, aby ste proces zabili, je stlačiť kláves "k" a zadať ID procesu aplikácie, ktorú chcete zabiť.

Skôr v tejto časti príkaz zabiť a to vyžaduje, aby ste si našli proces pomocou príkazu ps a potom zabíjali proces pomocou príkazu kill. Toto nie je najjednoduchšia voľba akýmkoľvek spôsobom.

Jedna vec, príkaz ps vráti veľa informácií, ktoré nepotrebujete. Všetko, čo ste chceli, bolo ID procesu. ID procesu môžete získať jednoduchšie spustením nasledujúceho príkazu:

pgrep firefox

Výsledkom vyššie uvedeného príkazu je jednoducho procesné ID Firefoxu. Teraz môžete spustiť príkaz kill takto:

zabiť

(Nahraďte s aktuálnym ID procesu vrátený pgrep).

V skutočnosti je však jednoduchšie dodať názov programu na pkill takto:

pkill firefox

Nakoniec môžete použiť grafický nástroj, ako je ten, ktorý je dodávaný s programom Ubuntu nazývaný "System Monitor". Ak chcete spustiť program "Monitor systému", stlačte kláves Super (kláves Windows na väčšine počítačov) a do vyhľadávacieho panela zadajte "sysmon". Keď sa zobrazí ikona systému monitora, kliknite na ňu.

Systémový monitor zobrazuje zoznam procesov. Ak chcete program ukončiť čistým spôsobom, vyberte ho a stlačte tlačidlo konca v dolnej časti obrazovky (alebo stlačte klávesy CTRL a E). Ak to nefunguje, buď kliknite pravým tlačidlom myši a zvoľte "Kill" alebo stlačte CTRL a K na proces, ktorý chcete zabiť.