Při práci na počítači se systémem Linux někdy možná budete muset zjistit, jaké procesy aktuálně běží. Existuje řada příkazů, které můžete použít k vyhledání informací o běžících procesech pomocí ps a top jsou ty nejběžněji používané.
V tomto článku budeme hovořit o pstree příkaz. Je to podobné jako ps , ale místo výpisu běžících procesů je zobrazuje ve stromu. Stromový formát je pohodlnější způsob zobrazení hierarchie procesů a dělá výstup vizuálně přitažlivějším.
Jak používat pstree Příkaz #
Obecná syntaxe pro pstree příkaz je následující:
ps [OPTIONS] [USER or PID]
V nejjednodušší podobě, když je vyvolán bez jakékoli možnosti nebo argumentu, pstree zobrazí hierarchickou stromovou strukturu všech běžících procesů:
pstree systemd─┬─VBoxService───7*[{VBoxService}]
├─accounts-daemon───2*[{accounts-daemon}]
├─2*[agetty]
├─atd
├─cron
├─dbus-daemon
├─irqbalance───{irqbalance}
├─2*[iscsid]
├─lvmetad
├─lxcfs───2*[{lxcfs}]
├─networkd-dispat───{networkd-dispat}
├─nginx───2*[nginx]
...
Položka top/root ve stromu je nadřazeným procesem všech systémových procesů. V tomto příkladu je to systemd , což je první proces, který se spustí při spouštění.
pstree sloučí identické větve tak, že je vloží do hranatých závorek a předponu jim celým číslem, které představuje počet větví. Díky tomu je výstup čitelnější a vizuálně přitažlivější.
Níže je uveden příklad, jak se používají hranaté závorky:
├─2*[agetty]
je stejný jako:
├─agetty
├─agetty
Chcete-li zakázat sloučení identických větví, použijte -c možnost:
pstree -c Vlákna procesu jsou zobrazena pod nadřazeným procesem a zobrazena pomocí názvu procesu ve složených závorkách. Zde je příklad:
├─lxcfs───2*[{lxcfs}]
Použijte -t možnost zobrazit celé názvy vláken. Pokud chcete skrýt vlákna a zobrazit pouze procesy, použijte -T možnost.
Obvykle pstree zobrazuje mnoho řádků výstupu, které se nevejdou na obrazovku. Chcete-li výstup zobrazit po jedné stránce, přesuňte jej do less příkaz:
pstree | less
Pokud je jako argument uvedeno uživatelské jméno, pstree zobrazuje pouze procesy vlastněné tímto uživatelem. Například následující příkaz zobrazí pouze ty procesy, které byly spuštěny uživatelem jménem „linuxize“:
pstree linuxize
Když je jako argument zadán PID, pstree zobrazí strom s daným procesem jako kořenem stromu. Zde je příklad:
pstree 1943 sshd───bash───pstree
Pro zobrazení nadřazených procesů daného procesu použijte -s možnost následovaná PID procesu:
pstree -s 1943 systemd───sshd───sshd───bash───pstree
Zobrazit PID a PGID #
Obvykle při spuštění pstree nejdůležitější informací, kterou uživatel hledá, je ID procesu. Například znalost PID vám umožní zabít nefunkční proces.
-p volba instruuje pstree pro zobrazení PID:
pstree -p PID jsou uvedeny v závorkách za každým procesem nebo vláknem.
systemd(1)─┬─VBoxService(955)─┬─{VBoxService}(956)
│ ├─{VBoxService}(957)
│ ├─{VBoxService}(958)
│ ├─{VBoxService}(959)
│ ├─{VBoxService}(960)
│ ├─{VBoxService}(961)
│ └─{VBoxService}(962)
...
Ve výchozím nastavení pstree , seřaďte procesy se stejným rodičem podle názvu. -n volba říká pstree použít číselné řazení, tj. řazení podle PID:
pstree -pn
ID skupiny procesů nebo PGID je ID procesu prvního člena skupiny procesů. Pro zobrazení PGID použijte -g možnost:
pstree -g PID jsou také uvedeny v závorkách za každým procesem nebo vláknem.
systemd(1)─┬─VBoxService(954)─┬─{VBoxService}(954)
│ ├─{VBoxService}(954)
│ ├─{VBoxService}(954)
│ ├─{VBoxService}(954)
│ ├─{VBoxService}(954)
│ ├─{VBoxService}(954)
│ └─{VBoxService}(954)
...
Když se zobrazí PID nebo PGID, sloučení je implicitně zakázáno.
Zobrazit argumenty příkazového řádku #
Některé programy lze vyvolat s konfiguračními možnostmi zadanými jako argumenty příkazového řádku.
Ve výchozím nastavení pstree nezobrazí argumenty příkazového řádku pro běžící procesy. Chcete-li zobrazit, jak byl proces spuštěn, použijte příkaz společně s -a možnost:
pstree -a ...
├─agetty -o -p -- \\u --keep-baud 115200,38400,9600 ttyS0 vt220
├─agetty -o -p -- \\u --noclear tty1 linux
...
Zvýraznění #
pstree také umožňuje zvýraznit procesy pro lepší vizuální reprezentaci.
-h volba instruuje pstree pro zvýraznění aktuálního procesu a všech jeho předků.
pstree -h
Chcete-li zvýraznit konkrétní proces, použijte -H možnost následovaná ID procesu:
pstree -H PID_NUMBER Pokud zvýraznění není podporováno, příkaz se ukončí s chybou.
Závěr č.
pstree příkaz zobrazí běžící procesy ve formě stromové struktury.
Informace o všech dostupných pstree možnosti zadejte man pstree ve vašem terminálu.
Pokud máte nějaké dotazy nebo zpětnou vazbu, neváhejte zanechat komentář.