30 Užitečné příklady „ps Command“ pro monitorování procesů v systému Linux
ps (status procesu) je nativní nástroj Unix / Linux pro prohlížení informací týkajících se výběru spuštěných procesů v systému: čte tyto informace z virtuálních souborů v souborovém systému / proc. Je to jeden z důležitých nástrojů pro správu systému, konkrétně v rámci monitorování procesu, který vám pomůže pochopit, co se děje v systému Linux.
Má mnoho možností pro manipulaci s jeho výstupem, ale najdete malý řada z nich je prakticky užitečná pro každodenní použití.
Přečtěte si také: Vše, co potřebujete vědět o procesech v systému Linux
V tomto článku se podíváme na 30 užitečných příkladů příkazů ps pro sledování aktivních běžících procesů v systému Linux.
Všimněte si, že ps produkuje výstup s nadpisem, který představuje význam každého sloupce informací, význam všech štítků najdete v ps man stránka.
Seznam všech procesů v aktuálním prostředí
1. Pokud spustíte příkaz ps bez jakýchkoli argumentů, zobrazí se procesy pro aktuální prostředí.
$ ps
Tisk všech procesů v různých formátech
2. Zobrazit všechny aktivní procesy v systému Linux v obecném formátu (Unix / Linux).
$ ps -AOR$ ps -e
3. Zobrazit všechny procesy ve formátu BSD.
$ ps auOR$ ps axu
4. Chcete-li provést výpis v plném formátu, přidejte příznak -f
nebo -F
.
$ ps -efOR$ ps -eF
Zobrazit procesy spuštěné uživatelem
5. Můžete vybrat všechny procesy, které vlastníte (v tomto případě běh příkazu ps, root), zadejte:
$ ps -x
6. Chcete-li zobrazit procesy uživatele podle skutečného ID uživatele (RUID) nebo jména, použijte příznak -U
.
$ ps -fU tecmintOR$ ps -fu 1000
7. Chcete-li vybrat procesy uživatele podle efektivního ID uživatele (EUID) nebo jména, použijte možnost -u
.
$ ps -fu tecmintOR$ ps -fu 1000
Tisknout všechny procesy běžící jako root (skutečné a efektivní ID)
8. Následující příkaz umožňuje zobrazit každý proces spuštěný s oprávněními uživatele root (skutečné & efektivní ID) ve formátu uživatele.
$ ps -U root -u root
Zobrazení skupinových procesů
9. Pokud chcete zobrazit seznam všech procesů vlastněných určitou skupinou (ID skutečné skupiny (RGID) nebo název), zadejte.
$ ps -fG apacheOR$ ps -fG 48
10. Chcete-li zobrazit seznam všech procesů vlastněných efektivním názvem skupiny (nebo relací), zadejte.
$ ps -fg apache
Zobrazit procesy podle PID a PPID
11. Procesy můžete zobrazit podle PID následujícím způsobem.
$ ps -fp 1178
12. Chcete-li vybrat proces pomocí PPID, zadejte.
$ ps -f --ppid 1154
13.. Proveďte výběr pomocí seznamu PID.
$ ps -fp 2226,1154,1146
Zobrazit procesy podle TTY
14. Chcete-li vybrat procesy podle tty, použijte příznak -t následujícím způsobem.
$ ps -t pst/0$ ps -t pst/1$ ps -ft tty1
Vytisknout strom procesů
15. Strom procesů ukazuje, jak jsou procesy v systému navzájem propojeny; procesy, jejichž rodiče byli zabiti, jsou adoptovány initem (nebo systemd).
$ ps -e --forest
16.. Můžete také vytisknout strom procesu pro daný proces, jako je tento.
$ ps -f --forest -C sshdOR$ ps -ef --forest | grep -v grep | grep sshd
Tisková vlákna procesu
17. Chcete-li vytisknout všechna vlákna procesu, použijte příznak -H
, který zobrazí sloupce LWP (lehký proces) i NLWP (počet lehkých procesů).
$ ps -fL -C httpd
Určete vlastní výstupní formát
Pomocí možností -o nebo –format vám ps umožňuje vytvářet výstupní formáty definované uživatelem, jak je znázorněno níže.
18. Chcete-li zobrazit seznam všech specifikátorů formátu, zahrňte příznak L
.
$ ps L
19. Následující příkaz umožňuje zobrazit PID, PPID, uživatelské jméno a příkaz procesu.
$ ps -eo pid,ppid,user,cmd
20. Níže je uveden další příklad vlastního výstupního formátu, který zobrazuje skupinu systémů souborů, pěknou hodnotu, čas zahájení a uplynulý čas procesu.
$ ps -p 1154 -o pid,ppid,fgroup,ni,lstart,etime
21. Vyhledání názvu procesu pomocí jeho PID.
$ ps -p 1154 -o comm=
Zobrazit nadřazené a podřízené procesy
22. Chcete-li vybrat konkrétní proces podle názvu, použijte příznak -C, zobrazí se také všechny jeho podřízené procesy.
$ ps -C sshd
23. Najděte všechny PID všech instancí procesu, užitečné při psaní skriptů, které potřebují číst PID ze standardního výstupu nebo souboru.
$ ps -C httpd -o pid=
24. Zkontrolujte dobu provedení procesu.
$ ps -eo comm,etime,user | grep httpd
Následující výstup ukazuje, že služba HTTPD běží 1 hodinu, 48 minut a 17 sekund.
Řešení problémů Výkon systému Linux
Pokud váš systém nefunguje tak, jak by měl, například pokud je neobvykle pomalý, můžete provést řešení potíží se systémem následovně.
26. Najděte nejlépe běžící procesy podle nejvyššího využití paměti a procesoru v systému Linux.
$ ps -eo pid,ppid,cmd,%mem,%cpu --sort=-%mem | headOR$ ps -eo pid,ppid,cmd,%mem,%cpu --sort=-%cpu | head
27. Chcete-li zabít linuxové procesy / nereagující aplikace nebo jakýkoli proces, který spotřebovává vysoký čas CPU.
Nejprve vyhledejte PID nereagujícího procesu nebo aplikace.
$ ps -A | grep -i stress
Poté jej pomocí příkazu kill okamžitě ukončete.
$ kill -9 2583 2584
Tisknout informace o zabezpečení
28. Ukažte tento kontext zabezpečení (konkrétně pro SELinux).
$ ps -eMOR$ ps --context
29. Pomocí tohoto příkazu můžete také zobrazit informace o zabezpečení v uživatelem definovaném formátu.
$ ps -eo euser,ruser,suser,fuser,f,comm,label
Provádění monitorování procesů v reálném čase pomocí nástroje Watch Utility
30. Nakonec, protože ps zobrazuje statické informace, můžete použít nástroj watch k provádění monitorování procesů v reálném čase s opakujícím se výstupem, zobrazeným po každé vteřině jako v níže uvedeném příkazu (k dosažení svého cíle zadejte vlastní příkaz ps).
$ watch -n 1 "ps -eo pid,ppid,cmd,%mem,%cpu --sort=-%mem | head"
Důležité: ps zobrazuje pouze statické informace, pro zobrazení často aktualizovaného výstupu můžete použít nástroje jako htop; nahoře a pohledy: poslední dva jsou ve skutečnosti nástrojem pro sledování výkonu systému Linux.
Můžete si také přečíst následující související články.
- Jak najít název procesu pomocí čísla PID v systému Linux
- Vyhledejte nejlépe běžící procesy podle nejvyššího využití paměti a procesoru v systému Linux
- Průvodce Příkazy Kill, Pkill a Killall k ukončení procesu v systému Linux
- Jak najít a zabít spuštěné procesy v systému Linux
- Jak spustit příkaz Linux na pozadí a odpojit proces v terminálu