V Linuxu se spuštěná instance programu nazývá proces. Občas, když pracujete na počítači s Linuxem, 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
, pstree
a top
jsou ty nejběžněji používané.
Tento článek vysvětluje, jak používat ps
k zobrazení seznamu aktuálně spuštěných procesů a zobrazení informací o těchto procesech.
Jak používat ps
Příkaz #
Obecná syntaxe pro ps
příkaz je následující:
ps [OPTIONS]
Z historických důvodů a důvodů kompatibility je ps
příkaz přijímá několik různých typů voleb:
- Možnosti stylu UNIX, kterým předchází jedna pomlčka.
- Možnosti stylu BSD, použité bez pomlčky.
- Dlouhé možnosti GNU, před kterými jsou dvě pomlčky.
Různé typy možností lze kombinovat, ale v některých konkrétních případech se mohou objevit konflikty, takže je nejlepší zůstat u jednoho typu možnosti.
Možnosti BSD a UNIX lze seskupit.
V nejjednodušší podobě, při použití bez možnosti, ps
vytiskne čtyři sloupce informací pro minimálně dva procesy běžící v aktuálním shellu, samotný shell a procesy, které běží v shellu, když byl příkaz vyvolán.
ps
Výstup obsahuje informace o shellu (bash
) a proces běžící v tomto shellu (ps
, příkaz, který jste zadali):
PID TTY TIME CMD
1809 pts/0 00:00:00 bash
2043 pts/0 00:00:00 ps
Čtyři sloupce jsou označeny PID
, TTY
, TIME
a CMD
.
PID
- ID procesu. Obvykle při spuštěníps
nejdůležitější informací, kterou uživatel hledá, je PID procesu. Znalost PID vám umožní zabít nefunkční proces.TTY
- Název řídicího terminálu pro proces.TIME
– Kumulativní čas procesoru procesu, zobrazený v minutách a sekundách.CMD
- Název příkazu, který byl použit ke spuštění procesu.
Výše uvedený výstup není příliš užitečný, protože neobsahuje mnoho informací. Skutečná síla ps
příkaz přichází po spuštění s dalšími možnostmi.
ps
příkaz akceptuje obrovské množství možností, které lze použít k zobrazení specifické skupiny procesů a různých informací o procesu, ale pro každodenní použití jich stačí jen hrstka.
ps
se nejčastěji používá s následující kombinací možností:
Formulář BSD :
ps aux
a
volba říkáps
pro zobrazení procesů všech uživatelů. Nejsou zobrazeny pouze procesy, které nejsou spojeny s terminálem, a procesy vedoucích skupin.u
znamená uživatelsky orientovaný formát, který poskytuje podrobné informace o procesech.x
volba dává pokynps
k výpisu procesů bez řídicího terminálu. Jsou to hlavně procesy, které se spouštějí při bootu a běží na pozadí.
Příkaz zobrazí informace v jedenácti sloupcích označených USER
, PID
, %CPU
, %MEM
, VSZ
, RSS
, STAT
, START
, TTY
, TIME
a CMD
.
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 1 0.0 0.8 77616 8604 ? Ss 19:47 0:01 /sbin/init
root 2 0.0 0.0 0 0 ? S 19:47 0:00 [kthreadd]
...
PID
jsme již vysvětlili , TTY
, TIME
a CMD
štítky. Zde je vysvětlení dalších štítků:
USER
– Uživatel, který proces spouští.%CPU
- Využívání procesoru procesu.%MEM
– Procento velikosti rezidentní sady procesu k fyzické paměti v počítači.VSZ
- Velikost virtuální paměti procesu v KiB.RSS
- Velikost fyzické paměti, kterou proces používá.STAT
- Kód stavu procesu, napříkladZ
(zombie),S
(spící) aR
(běh).START
- Čas, kdy příkaz začal.
f
volba říká ps
k zobrazení stromového zobrazení rodičovských až podřízených procesů:
ps auxf
ps
příkaz také umožňuje třídit výstup. Chcete-li například seřadit výstup podle využití paměti, použijte:
ps aux --sort=-%mem
Formulář UNIX :
ps -ef
-e
volba dává pokynps
pro zobrazení všech procesů.-f
představuje full-format listing, který poskytuje podrobné informace o procesech.
Příkaz zobrazí informace v osmi sloupcích označených UID
, PID
, PPID
, C
, TIME
, TIME
a CMD
.
UID PID PPID C STIME TTY TIME CMD
root 1 0 0 19:47 ? 00:00:01 /sbin/init
root 2 0 0 19:47 ? 00:00:00 [kthreadd]
...
Štítky, které ještě nejsou vysvětleny, mají následující význam:
UID
- Stejné jakoUSER
, uživatel, který proces spouští.PPID
– ID nadřazeného procesu.C
- Stejné jako%CPU
, využití CPU procesu.TIME
- Stejné jakoSTART
, čas, kdy příkaz začal.
Chcete-li zobrazit pouze procesy běžící jako konkrétní uživatel, zadejte následující příkaz, kde linuxize
je jméno uživatele:
ps -f -U linuxize -u linuxize
Uživatelem definovaný formát #
o
umožňuje určit, které sloupce se zobrazí při spuštění ps
příkaz.
Chcete-li například vytisknout informace pouze o PID
a COMMAND
, spustíte jeden z následujících příkazů:
ps -efo pid,comm
ps auxo pid,comm
Pomocí ps
S dalšími příkazy #
ps
lze použít v kombinaci s dalšími příkazy prostřednictvím potrubí.
Pokud chcete zobrazit výstup ps
příkaz, jednu stránku po druhé propojte do less
příkaz:
ps -ef | less
Výstup ps
příkaz lze filtrovat pomocí grep
. Chcete-li například zobrazit pouze proces patřící uživateli root, který byste spustili:
ps -ef | grep root
Závěr č.
ps
command je jedním z nejčastěji používaných příkazů při odstraňování problémů v systémech Linux. Má mnoho možností, ale obvykle většina uživatelů používá buď ps aux
nebo ps -ef
ke shromažďování informací o běžících procesech.
Další informace o ps
, zadejte man ps
ve vašem terminálu.
Pokud máte nějaké dotazy nebo zpětnou vazbu, neváhejte zanechat komentář.