V operačním systému existuje mnoho programů, které se odehrávají v paměti RAM počítače. Tyto programy může spouštět samotný OS nebo uživatel, takové programy se nazývají 'Procesy .' Obvykle má proces svůj životní cyklus a sám se ukončí, když je dokončen nebo když jej ukončíme ručně. Někdy se však proces může zablokovat kvůli chybě v plánování procesu nebo kvůli spotřebě velkého množství paměti RAM nebo CPU. V takových případech musíme procesy ukončit ručně, abychom zachránili náš počítač před neočekávaným zavěšením.
Linux umožňuje různým nástrojům zabít chybující proces. Abychom mohli zabít proces, musíme mít k dispozici informace o procesu, jako je např PID, signál a další .
Lokalizace procesů
Abychom proces zabili, musíme získat přístup k informacím o procesu. Existují různé příkazy pro sledování procesu jako např horní , ps , rukojeť, a pidof.
Linuxový systém nám umožňuje zabít proces různými způsoby, jako např zabít proces podle jeho názvu nebo id procesu (PID). Výše uvedené příkazy tedy použijeme podle naší potřeby.
Vyhledání procesů pomocí příkazu „top“.
The horní příkaz se používá k výpisu všech běžících procesů v systému Linux. Zobrazuje podrobné informace, jako je PID, uživatelské jméno, využití CPU, čas, provedený příkaz a další.
Chcete-li najít procesy, spusťte příkaz následovně:
junit testovací případy
top
Výše uvedený příkaz zobrazí běžící procesy. Zvažte následující výstup:
Procesy můžeme procházet rolováním nahoru a dolů na terminálu. Příkaz top poskytuje různé filtry pro filtrování procesů, jako je název procesu, využití procesoru a další. Chcete-li opustit horní část, stiskněte tlačítko 'q' klíč, vrátí vás do terminálu. Můžeme však využít i tradiční možnost odchodu stisknutím CTRL+C klíče.
Vyhledání procesů pomocí příkazu ps a grep
The ps příkaz je další způsob, jak zobrazit informace o procesu. Existuje mnoho voleb, které se používají s příkazem ps, jako např na, což znamená:
a: Chcete-li zobrazit procesy pro všechny uživatele
v : Zobrazení procesů používaných konkrétním uživatelem
X : Pro zobrazení všech procesů. Pokud nezadáme možnost x, nezobrazí se proces GUI.
Provedením níže uvedeného příkazu zobrazíte seznam všech běžících procesů:
ps aux
Zvažte následující výstup:
Výstup příkazu ps je podobný jako horní příkaz. Název procesu a PID jsou uvedeny v prvních dvou sloupcích a název procesu je uveden ve sloupci zcela vpravo.
Příkaz ps je užitečnější než příkaz top. Umožňuje nám filtrovat výstup příkazem grep.
Předpokládejme, že chceme filtrovat celý proces s uživatelským jménem javatpo+, spusťte příkaz následovně:
ps aux | grep javatpo+
Výše uvedený příkaz bude filtrovat všechny zadané procesy příkazem grep. Zvažte následující výstup:
Výše uvedený výstup poskytuje společně funkce příkazu ps i příkazu grep.
Vyhledání procesu pomocí příkazu pidof a pgrep
The pidof příkaz nám také umožňuje lokalizovat proces. Pokud chceme sledovat proces podle jeho názvu, bude velmi užitečný příkaz pidof. Zobrazuje PID procesů, pokud je použit s názvem procesu.
Chcete-li najít PID procesu, proveďte příkaz pidof následovně:
pidof process_name
Pokud máme běžící proces s přesným názvem chrom , proveďte příkaz následovně, abyste získali jeho PID.
pidof chrome
zvažte následující výstup:
Zabíjení procesu
Nyní, když jsme sledovali procesy, můžeme proces zabít. Existují různé příkazy, které se používají k zabití procesu jako např zabít , zabít , horní, a pkill.
Před zabitím procesu je nutné vědět, jaké procesy můžeme zabít. Níže jsou uvedeny některé základní body o procesech zabíjení:
- Pokud jste normální uživatel, pak můžete zabít pouze procesy, které vám patří. Nemůžete zabít procesy, které jsou spuštěny ostatními uživateli. The horní a ps to příkazy zobrazí uživatele se souvisejícím procesem.
- Uživatel root může zabít všechny procesy. Můžeme však také přidat sudo před jakýkoli příkaz a provést jej jako root.
- V Linuxu, když je proces zabíjen, je do procesů přenášen speciální signál. I když existují různé typy signálů v Linuxu, ale v tomto případě se Linux zabývá SIGKILLS a OBDOBÍ signály. Ve výchozím stavu. Linux odešle SIGTERM, který proces elegantně ukončí. Pokud chcete násilně zabít proces, použijte místo toho SIGKILL.
- Linux uchovává stav procesů, dokud není zcela odstraněn ze systému. Takže podřízené procesy budou zobrazeny v seznamu procesů, dokud nebude odstraněn nadřazený proces.
- Nemůžeme zabít proces, pokud je uvnitř 'nepřerušitelný spánek .' K této situaci dochází, když proces provádí vstupní/výstupní operaci. Tento stav lze vidět v 8čtsloupec horní a ps k příkazu.
Zabití procesu příkazem killall
Příkaz killall je nejjednodušší technika pro ukončení procesu, pokud znáte přesný název procesu, není spuštěn žádným jiným uživatelem a není ve stavu Z nebo D. V příkazu kill all není potřeba hledat proces nebo PID. Chcete-li proces zabít, spusťte příkaz následovně:
killall firefox
Výše uvedený příkaz ukončí proces a ukončí prohlížeč firefox. Zvažte následující výstup:
Pokud příkaz úspěšně ukončí proces, neposkytne žádný výstup.
Chcete-li násilně zabít proces, spusťte příkaz killall s -SIGKILL takto:
killall -SIGKILL process_name
můžeme také použít -9 místo -SIGKILL.
Chcete-li interaktivně ukončit proces, spusťte příkaz následovně:
killall -i process_name
Chcete-li ukončit proces jako jiný uživatel, spusťte příkaz následovně:
sudo killall process_name
Můžeme také zabít proces na pevně stanovenou dobu pomocí -Ó a -a vlajky. Chcete-li zabít proces, který běží déle než 20 minut, spusťte níže uvedený příkaz: killall -o 20m název_procesu
Chcete-li zabít proces, který běží méně než 20 minut, proveďte níže uvedený příkaz:
killall -y 20m process_name
Zkratky pro použití časového období jsou následující:
sekundy: s
minuty: m
hodiny: h
dny: d
týdny: w
měsíce: M
roky: r
Zabijte proces příkazem pkill
Někdy neznáme přesný název procesu; v takovém případě bude příkaz pkill nejužitečnějším nástrojem pro ukončení procesu. Umožňuje nám to zabít proces zadáním odpovídajícího názvu procesu. Například chceme zabít všechny procesy s odpovídajícím názvem java, spusťte příkaz následovně:
pkill java
zavře všechny procesy, které obsahují jméno java. Podobně pro zabití procesu firefox spusťte příkaz následovně:
pkill fire
Zvažte následující výstup:
Pokud je příkaz pkill úspěšně proveden, nezobrazí se žádný výstup.
Chcete-li proces násilně zabít příkazem pkill, proveďte jej následovně:
pkill -SIGKILL process_name<p></p> <p>we can also use -9 instead of -SIGKILL. </p>
Zabijte proces příkazem kill
Příkaz kill je nejjednodušší nástroj pro ukončení procesu; vše, co potřebujeme PID procesu. Jakmile získáme PID procesu, je to přímočarý proces. Chcete-li ukončit proces, proveďte příkaz kill následovaný PID. Chcete-li najít PID procesu, použijte příkaz top nebo ps aux, jak je vysvětleno výše.
Chcete-li zabít proces s PID 5296, proveďte příkaz následovně:
kill 5296
Chcete-li násilně ukončit proces, použijte volbu -SIGKILL nebo -9:
kill -SIGKILL 5296
Výše uvedený příkaz ukončí proces s PID 5296.
Zabijte proces příkazem top
Příkaz top nám umožňuje najít a zabít proces. Je to přímočarý proces k ukončení procesu pomocí příkazu top. Nejprve proveďte horní příkaz k nalezení procesu a stiskněte k' při spuštěném příkazu. Ponoří vás do režimu zabíjení procesu, zadejte PID procesu, který chcete zabít. Zvažte následující výstup:
Jak vidíme z výše uvedeného výstupu, existuje možnost ' PID k signalizaci/zabití' zabít proces z výše uvedeného seznamu procesů. Zadejte PID procesu a stiskněte ENTER klíč.
Pokud ponecháme PID prázdné, ukončí se nejvyšší proces.
Zabijte proces pomocí sledování systému
Proces můžeme také ukončit grafickým prostředím Linuxu nazvaným systémový monitor. Chcete-li ukončit proces prostřednictvím monitorování systému, postupujte takto:
Krok 1: Vyhledejte nebo procházejte monitor systému a otevřete jej stisknutím klávesy Enter.
Krok 2: Zobrazí seznam všech běžících procesů vašeho systému Linux. Zvažte následující obrázek:
Krok 3: Procházejte proces a klikněte pravým tlačítkem na něj, který chcete ukončit.
Krok 4: Vyberte možnost Kill. Také můžeme použít CTRL+K klíče k zabití.