Příkaz ps vyvolá tabulku procesů, záznam, který shrnuje aktuálně běžící procesy v systému. Když je příkaz spuštěn bez jakékoli volby, zobrazí procesy spuštěné aktuálním shellem s podrobnostmi, jako je PID, terminál spojený s procesem, akumulovaný čas CPU a příkaz, který proces spustil. Spolu s příkazem však mohou být použity různé možnosti pro filtrování zobrazených polí nebo procesů.
Syntaxe
Syntaxe příkazu ps je:
$ ps [options]
Styly syntaxe volby příkazu
Příkaz ps podporuje tři různé styly syntaxe voleb příkazu:styl Unix (předchází pomlčka), styl GNU (předchází dvě pomlčky) a styl BSD (bez pomlčky). Míchání těchto stylů nevede vždy ke stejným výsledkům. Například příkaz ps (ve stylu BSD) vytiskne všechny procesy s řídicím terminálem, včetně vedoucích relací (první člen skupiny procesů). Vytiskne také stav každého procesu a také úplný příkaz (včetně možností) každého procesu. Příkaz ps -a (unixový styl) také vytiskne všechny procesy s řídicím terminálem, ale nezahrnuje vedoucí relací, stav každého procesu ani úplný příkaz každého procesu.
Možnosti příkazu ps
Příkaz ps podporuje několik možností. Některé z významnějších možností jsou uvedeny zde.
Možnost | Použito na |
---|---|
a | Vypsat všechny procesy spouštěné uživatelem. |
-e | Vypsat všechny procesy. |
-l | Seznam procesů pomocí dlouhého formátu výpisu. |
u | Vypsat procesy spolu s uživatelským jménem a časem zahájení. |
r | Vyloučit procesy, které aktuálně neběží. |
x | Zahrnout procesy bez terminálu. |
T | Vyloučit procesy, které byly spuštěny jakýmkoli jiným terminálem než aktuálním. |
-U {jméno uživatele} | Zobrazte procesy založené na zadaném uživateli. |
-p {PID} | Zobrazí pouze proces spojený se zadaným PID. |
-C {příkaz} | Zobrazit všechny procesy podle názvu příkazu. |
–tty {číslo terminálu} | Zobrazí všechny procesy běžící na zadaném terminálu. |
Příklady příkazů ps
1. Chcete-li zobrazit proces zombie:
# ps aux | awk '{ print $8 " " $2 }' | grep -w Z
2. Výpis zombie procesů:
# ps -el | grep Z
3. Chcete-li najít/vypsat spuštěné procesy:
# ps -r
4. Najděte procesy pro konkrétního uživatele:
# ps -U apache # ps U apache # ps -u apache
5. Chcete-li vidět každý proces spuštěný jako root (skutečné a efektivní ID) v uživatelském formátu:
# ps -U root u
6. Chcete-li najít/vypsat seznam procesů, které mají test.pl v provádění příkazu:
# ps -f -C test.pl
7. Vyjmenujte procesy založené na PID:
# ps -f --ppid 9576
8. pgrep, pkill – vyhledávání nebo signalizace procesů na základě jména a dalších atributů:
# pgrep 1234 # pkill 1234 OR # pkill httpd
9. Třídění výstupu ps:
# ps -eo uname,pid,ppid,nlwp,pcpu,pmem,psr,start_time,tty,time,args --sort -pcpu,-pmem
10. Chcete-li vytisknout strom procesu:
# ps -ejH # ps axjf
11. Vytiskněte pouze ID procesů syslogd:
# ps -C syslogd -o pid=
12. Vytiskněte pouze název PID 42:
# ps -p 42 -o comm=
13. Vypište proces na základě UID a příkazů:
# ps -f -u wwwrun,postfix
14. Vyjmenujte procesy založené na PID nebo PPID:
# ps -f --ppid 9576
15. Seznam procesů v hierarchii:
# ps -e -o pid,args --forest
16. Vypište uplynulý čas stěny pro procesy:
# ps -p 1,29675 -o pid,etime=
17. Seznam hierarchie procesů:
# ps -e -o pid,args --forest # ps axjf # ps -ejH
18. Seznam všech vláken pro konkrétní proces:
# ps -C java -L -o pid,tid,pcpu,state,nlwp,args
19. Zobrazení stromu procesů:
# pstree
20. Chcete-li zobrazit seznam uplynulého času pro procesy:
# ps -p 1,29675 -o pid,etime=
21. Chcete-li zjistit čas zahájení procesu:
# ps -p PID -o lstart=
22. Zobrazte úplné informace o každém z aktuálně běžících procesů:
# ps -ef | grep
23. Chcete-li získat informace o vláknech:
# ps -eLf # ps axms
24. Získání bezpečnostních informací:
# ps -eo euser,ruser,suser,fuser,f,comm,label # ps axZ # ps -eM
25. Chcete-li zobrazit každý proces v uživatelsky definovaném formátu:
# ps -eo pid,tid,class,rtprio,ni,pri,psr,pcpu,stat,wchan:14,comm # ps axo stat,euid,ruid,tty,tpgid,sess,pgrp,ppid,pid,pcpu,comm # ps -eopid,tt,user,fname,tmout,f,wchan
26. Seznam všech vláken pro konkrétní proces:
# ps -C java -L -o pid,tid,pcpu,state,nlwp,args
27. Seznam všech běžících procesů včetně celého příkazového řetězce:
# ps auxww
28. Vyhledejte proces, který odpovídá řetězci:
# ps aux | grep string
29. Vypište všechny procesy aktuálního uživatele v extra plném formátu:
# ps --user $(id -u) -F
30. Vypište všechny procesy aktuálního uživatele jako strom:
# ps --user $(id -u) f
31. Získejte rodičovský PID procesu:
# ps -o ppid= -p pid
32. Seřaďte procesy podle spotřeby paměti:
# ps --sort size