V Linuxu se instance spuštěné služby, aplikace nebo skriptu nazývá proces. Když spustíte jakýkoli příkaz, program nebo aplikaci, vytvoří se pro něj proces. Každý proces má své vlastní ID procesu, které je přidruženo ke konkrétnímu uživateli a skupině. Pokud nějaké procesy spotřebují příliš mnoho zdrojů nebo přestanou reagovat, možná je budete muset zabít. V tomto případě můžete použít příkaz kill k zastavení procesu bez restartování serveru.
V tomto příspěvku vám ukážeme, jak zabít běžící procesy v Linuxu.
Předpoklady
- Server se systémem Linux na cloudové platformě Atlantic.Net
- Heslo uživatele root nakonfigurované na vašem serveru
Vytvořte cloudový server Atlantic.Net
Nejprve se přihlaste ke svému cloudovému serveru Atlantic.Net. Vytvořte nový server a vyberte libovolný operační systém Linux s alespoň 1 GB RAM. Připojte se ke svému cloudovému serveru přes SSH a přihlaste se pomocí přihlašovacích údajů zvýrazněných v horní části stránky.
Zobrazit běžící procesy v Linuxu
Nejjednodušší a nejjednodušší způsob, jak získat seznam všech běžících procesů, je použít příkaz top. Chcete-li zobrazit seznam všech spuštěných procesů, můžete spustit příkaz top, jak je uvedeno níže:
nahoře
Všechny běžící procesy získáte v následujícím výstupu:
Úkoly:344 celkem, 1 běžící, 297 spící, 0 zastavený, 0 zombie%Cpu(y):22,6 us, 6,0 sy, 0,1 ni, 67,1 id, 3,9 wa, 0,0 hi, 0,4 si, 0,0 stKiB Mem:7580260 celkem, 2103076 zdarma, 3174408 použitých, 2302776 buff/cacheKiB swap:2097148 celkem, 2097148 zdarma, 0 použitých. 3901388 Avail Mem Pid Uživatel Pr ni virta res shr s %cpu %mem Time+ příkaz 5994 vyom 20 0 44344 4160 3444 r 11,8 0,1 0:00,03 top 2206 Vyom 20 0 1046476 89792 60368 S 5,9 1,2 1:15.26 xrg 2359 Vyom 20. 34713244020 0 3471324476 89792 60368 S 5,9 1,2 1:15.26 x. 216412 97596 S 5.9 2.9 1:58.27 gnome-shell 2745 vyom 20 0 1776552 136144 99424 S 5.9 1.8 1:09.93 skypeforlinux 2775 vyom 20 0 37.371g 169524 117660 S 5.9 2.2 1:05.09 skypeforlinux 5655 root 20 0 0 0 0 I 5.9 0.0 0:00,30 kworker/u8:3-ev 1 kořen 20 0 160356 9464 6632 S 0,0 0,1 0:03,50 systemd 2 kořen 20 0 0 0 0 S 0,0 0,0 0:00,00 kthreadd 3 kořen 0:20 0 0 0 0,0 g 0,0 0 I 0,0 0,0 0:00,00 rcu_par_gp 6 kořen 0 -20 0 0 0 I 0,0 0,0 0:00,00 kworker/0:0H-kb 9 kořen 0 -20 0 0 0 I 0,0 0,0 0 mm 2 q q 0 S 0,0 0,0 0:00,40 ksoftirqd/0 11 kořen 20 0 0 0 0 I 0,0 0,0 0:03,58 rcu_sched 12 kořen rt 0 0 0 0 S 0,0 0,0 0:00,01 migrace/0 13 kořen -51 0 0 0 0 0 S 0,0 0,040 S 0,0 0,040 0 0 0 0 S 0,0 0,0 0:00,00 cpuhp/0 15 root 20 0 0 0 0 S 0,0 0,0 0:00,00 cpuhp/1 16 root -51 0 0 0 0 S 0,0 0,00 0:0Můžete stisknout k a zadat ID procesu pro ukončení procesu přímo z horního rozhraní.
Najděte proces pomocí příkazu ps
ps je nástroj příkazového řádku, který zobrazí úplný seznam běžících procesů v určeném formátu.
Základní syntaxe příkazu ps je uvedena níže:
ps [MOŽNOST]Stručné vysvětlení každé možnosti je uvedeno níže:
- -a – Zobrazí běžící procesy všech uživatelů.
- -u – zobrazí podrobné informace o každém z procesů.
- -x – Zobrazí procesy, které jsou řízeny démonem.
Například spuštěním následujícího příkazu získáte podrobný seznam procesů všech procesů.
ps aux
Získáte následující výstup:
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMANDroot 1 0,1 0,1 160356 9464 ? Ss 15:51 0:03 /sbin/init splashroot 2 0,0 0,0 0 0 ? S 15:51 0:00 [kthreadd]kořen 3 0,0 0,0 0 0 ? I<15:51 0:00 [rcu_gp]root 4 0,0 0,0 0 0 ? I<15:51 0:00 [rcu_par_gp]root 6 0,0 0,0 0 0 ? I<15:51 0:00 [kworker/0:0H-kb]kořen 9 0,0 0,0 0 0 ? I<15:51 0:00 [mm_percpu_wq]kořen 10 0,0 0,0 0 0 ? S 15:51 0:00 [ksoftirqd/0]kořen 11 0,1 0,0 0 0 ? I 15:51 0:03 [rcu_sched]root 12 0,0 0,0 0 0 ? S 15:51 0:00 [migrace/0]kořen 13 0,0 0,0 0 0 ? S 15:51 0:00 [idle_inject/0]kořen 14 0,0 0,0 0 0 ? S 15:51 0:00 [cpuhp/0]kořen 15 0,0 0,0 0 0 ? S 15:51 0:00 [cpuhp/1]kořen 16 0,0 0,0 0 0 ? S 15:51 0:00 [idle_inject/1]kořen 17 0,0 0,0 0 0 ? S 15:51 0:00 [migrace/1]kořen 18 0,0 0,0 0 0 ? S 15:51 0:00 [ksoftirqd/1]kořen 20 0,0 0,0 0 0 ? I<15:51 0:00 [kworker/1:0H-kb]kořen 21 0,0 0,0 0 0 ? S 15:51 0:00 [kdevtmpfs]kořen 22 0,0 0,0 0 0 ? I<15:51 0:00 [netns]
Výše uvedený příkaz vám ukáže všechny běžící procesy. K získání PID konkrétního procesu můžete použít příkaz grep s příkazem ps.
Chcete-li například získat PID procesu Apache, spusťte následující příkaz:
ps aux | grep apache
Získáte následující výstup:
root 1309 0,0 0,0 73992 4748 ? Ss 15:52 0:00 /usr/sbin/apache2 -k startwww-data 1310 0,0 0,0 1285068 4620 ? Sl 15:52 0:00 /usr/sbin/apache2 -k startwww-data 1311 0,0 0,0 1285068 4644 ? Sl 15:52 0:00 /usr/sbin/apache2 -k start
Můžete také použít pidof příkaz k získání PID konkrétního procesu.
pidof apache2
Získáte následující výstup:
1311 1310 1309
Zabít proces v Linuxu
V tomto okamžiku víte, jak získat PID jakéhokoli procesu. Nyní můžete použít příkaz kill k ukončení běžícího procesu.
Chcete-li zabít jeden proces, spusťte následující příkaz:
zničit PID
Nebo
kill -9 PID
Chcete-li zabít více procesů, spusťte následující příkaz:
zabít -9 PID1 PID2 PID3
Můžete také zabít procesy podle jejich jmen. Můžete použít pkill příkaz k ukončení procesu podle jeho jména.
Chcete-li ukončit proces Apache, spusťte následující příkaz:
pkill apache2
Můžete také použít killall příkaz k ukončení procesu podle jeho jména:
zabít mysqld
Závěr
V tomto příspěvku jsme vysvětlili, jak najít a zabít proces v Linuxu. Nyní můžete sami ukončit všechny nereagující procesy bez restartování serveru. Zkuste to na VPS hostingu od Atlantic.Net!