Používám Ubuntu Server 10.10 a rád bych viděl, jaké procesy běží. Vím, že na mém počítači běží PostgreSQL, ale nevidím to pomocí příkazů top
nebo ps
, takže předpokládám, že nezobrazují všechny spuštěné procesy. Existuje další příkaz, který ukáže všechny spuštěné procesy, nebo existují nějaké další parametry, které mohu použít s top
nebo ps
k tomu?
Ze stránky ps
man:
-e Vyberte všechny procesy. Stejné jako -A.
Tím pádem, ps -e
zobrazí všechny procesy. Běžné možnosti pro „dej mi všechno“ jsou ps -ely
nebo ps aux
, posledně jmenovaný je styl BSD. Lidé pak tento výstup posílají do grep
a hledají proces, jako v odpovědi xenoterracidu. Abychom také zabránili tomu, aby se ve výstupu také viděl grep
, často uvidíte něco jako:
ps -ef | grep [f]oo
kde foo je název procesu, který hledáte.
Pokud však hledáte konkrétní proces, doporučujeme použít příkaz pgrep
, pokud je k dispozici. Věřím, že je k dispozici na serveru Ubuntu. Použití pgrep
znamená, že se vyhnete výše uvedeným podmínkám závodu. Poskytuje také některé další funkce, které by pro replikaci vyžadovaly stále komplikovanější pokusy grep
. Syntaxe je jednoduchá:
pgrep foo
kde foo je proces, který hledáte. Ve výchozím nastavení jednoduše vydá ID procesu (PID) procesu, pokud jej najde. Viz man pgrep
pro další možnosti výstupu. Následující stránka mi připadala velmi užitečná:
vyzkoušeli jste ps aux | grep postgres
? opravdu by se mělo ukázat, pokud běží postgres. Pokud ne ... jak víte, že běží postgres?
(poznámka: je to běžná mylná představa, že je to ps -aux
, ale není to správné)