GNU/Linux >> Znalost Linux >  >> Linux

Příklady příkazů 20 ps pro monitorování procesů Linuxu

Monitorování linuxového systému je jedním z nejdůležitějších úkolů, které musí každý uživatel Linuxu nebo systémový administrátor provádět nepřetržitě, aby zajistil hladký chod systému a vyhnul se úzkým hrdlům. Linux se dodává s několika vestavěnými nástroji, které vám mohou pomoci monitorovat váš systém. Jedním z nich je ps (stav zpracování ) příkaz, který konkrétně monitoruje běžící procesy a mimo jiné metriky spojené s procesy, jako je procento CPU a paměť využití. Příkaz ps čte souborový systém /proc, který je založen na RAM nebo virtuální souborový systém.

V této příručce se ponoříme hlouběji a seznámíme vás s 20 nejběžněji používanými příkazy ps.

1) Proces zápisu do shellu

Nejjednodušší forma příkazu ps v linuxu uvádí běžící procesy v aktuálním shellu. To lze ilustrovat níže.

[[chráněno e-mailem] ~]$ ps PID TTY          ČAS CMD 1437 b./0    00:00:00 bash 1465 b./0    00:00:00 ps[[e-mailem chráněno] ~]$

Pojďme si definovat pár pojmů:

  • PID:Toto je ID procesu.
  • TTY:Toto se týká terminálu, který spustil a řídí proces.
  • ČAS:Toto je čas / kumulativní čas, po který proces běžel.
  • CMD:Název příkazu, který spustil proces.

2) Seznam procesů spojených s terminálem

Je to podobné jako výpis procesů v shellu. Chcete-li zobrazit seznam procesů souvisejících s terminálem, na kterém právě běžíte, spusťte příkaz:

[[chráněno e-mailem] ~]$ ps -T  PID  SPID TTY          ČAS CMD 1437  1437 bodů/0    00:00:00 bash13357 13357 bodů/0 e-mail    00:00:0 ~ 00:00:0 ~ před> 

3) Zobrazení všech běžících procesů ve vašem systému

Chcete-li získat přehled o všech běžících procesech ve vašem systému Linux, použijte příznak -A jak je znázorněno:

[[e-mail chráněný] ~]$ ps -A

Případně můžete také použít příznak –e jak je znázorněno. Stále budete mít podobné výsledky.

[[e-mail chráněný] ~]$ ps -e

4) Zobrazení výstupu ve formátu BSD

Chcete-li vypsat procesy ve formátu BSD, spusťte příkaz

$ ps -aux

Rozeberme si příkaz:

Parametr -a přikazuje ps, aby zobrazil všechny procesy od všech uživatelů. To však vylučuje procesy spojené s konkrétním terminálem.

Parametr -u implikuje uživatelsky orientovaný formát. Poskytuje podrobnější informace související s běžícími procesy.

Příznak x uvádí procesy, které se obvykle spouštějí při startu systému, a také procesy na pozadí.

Kde:

  • UŽIVATEL – Určuje uživatele spouštějícího proces
  • PID – Toto je ID procesu procesu
  • %CPU – procentuální využití procesoru každým procesem
  • %MEM – Toto je % fyzické paměti využité procesem
  • VSZ – Toto je velikost virtuální paměti každého procesu v kilobajtech
  • RSS – Toto je velikost/množství fyzické paměti používané procesem
  • STAT – Ukazuje na kód stavu procesu, např. S ​​(spící), Z (zombie) a R (běh)
  • START – Toto je čas, kdy proces začal běžet

5) Zobrazení výstupu ve formátu UNIX

Pokud chcete zobrazit výstup ve formátu UNIX, spusťte  příkaz ps s kombinací -ef příznaky

[[e-mail chráněný] ~]$ ps -ef

Parametr -e říká příkazu ps, aby vypsal všechny procesy

Parametr -f (plný formát) dává příkazu ps pokyn, aby vypsal podrobné informace o procesech.

Pojďme definovat několik nových termínů ze snímku obrazovky:

  • PPID:Toto se týká ID nadřazeného procesu
  • C:Toto se týká % CPU nebo procenta využití CPU procesem.
  • STIME:Ukazuje na čas, kdy byl příkaz spuštěn. Stejné jako START

6) Zobrazení výstupu v uživatelem definovaném formátu

Ve výstupu ve formátu definovaném uživatelem máte možnost rozhodnout, které sloupce se mají zobrazit. Příznak -o určuje, které sloupce se zobrazí při spuštění příkazu ps. V níže uvedeném příkladu pouze PID a START jsou zobrazeny sloupce. Nezapomeňte si uvědomit, že možnosti sloupců jsou v příkazu ps předávány malými písmeny.

[[e-mail chráněn] ~]$ ps -efo pid,start  PID  ZAČÁNO 1437 21:55:2813632 01:41:16[[e-mail chráněn] ~]$

7) Zobrazit aktuálně běžící procesy uživatele

Někdy možná budete chtít zjistit procesy, které jsou spojeny s určitým uživatelem, takže k tomu použijte příznak -u jak je znázorněno“

$ ps -u uživatel

NEBO

$ ps -u uid

Chcete-li například zobrazit procesy spojené s uživatelem ‚Linuxtechi‘, spusťte příkaz:

$ ps -u linuxtechi

Případně můžete použít uživatelské uid (User ID). ID uživatele můžete získat spuštěním příkazu:

$ id uživatel

[[email protected] ~]$ id linuxtechiuid=1000(linuxtechi) gid=1000(linuxtechi) groups=1000(linuxtechi),10(wheel)[[email protected] ~]$

Z výše uvedeného výstupu jasně vidíme, že uid pro uživatele ‚linuxtechi‘ je 1000. Poté můžete pomocí příkazu ps a uid najít procesy spojené s daným uživatelem.

$ ps -u 1000

Pro uživatele root spusťte příkaz

$ ps -u root

Podobně můžete zkontrolovat pomocí uid uživatele root, jehož hodnota je 0

$ ps -u 0

8) Zobrazení skupinových procesů

Výpis skupinových procesů je podobný výpisu uživatelských procesů. Skupinový proces můžete vypsat pomocí příkazu ps předáním názvu skupiny zadáním ID skupiny.

Chcete-li například zobrazit procesy spojené se skupinou „apache“, spusťte příkaz:

$ ps -fG

$ ps -fG apache

Případně můžete místo názvu skupiny předat ID skupiny (gid). GID můžete získat ze souboru /etc/group.

Například v tomto případě je ID skupiny pro Apache 48. Místo zadání názvu skupiny ‘apache “ jednoduše zadejte číslo GID. 48.

$ ps -fG 48

9) Zobrazení procesů pomocí PID a PPID

Procesy Linuxu lze také zobrazit pomocí PID (ID procesu ) a PPID (ID nadřazeného procesu) . PPID odkazuje na PID rodiče procesu.

Chcete-li vypsat procesy podle PID, spusťte

$ ps -fp PID

Chcete-li například zobrazit seznam procesů spojených s PID 1286, spusťte příkaz:

[[e-mail chráněno] ~]$ ps -fp 1286UID        PID  PPID  C STIME TTY          TIME CMDpostfix   1286  1285  0 03:49 ? 00:00:00 vyzvednutí -l -t unix -u[[e-mail chráněný] ~]$

Chcete-li vypsat procesy podle PPID, spusťte

$ ps -f –ppid <číslo-ppid>

Chcete-li například vypsat seznam procesů vlastněných PPID 31903, spusťte

$ ps -f --ppid 31903

10) Hledání PID pomocí názvu procesu

Většinu času obvykle neznáme PID názvu procesu. Chcete-li to provést, použijte příznak -C jak je znázorněno

$ ps -C

[[e-mail chráněno] ~]$ ps -C firefox  PID TTY          ČAS CMD 1446 tty2     00:00:04 firefox[[e-mail chráněno] ~]$

11) Proces zobrazení pomocí TTY

Pokud chcete filtrovat procesy podle hodnoty tty, použijte příznak -t . Chcete-li například zobrazit procesy připojené k tty1, spusťte příkaz ps podle obrázku:

$ ps -ft tty1

12) Tisk stromu procesu

Strom procesů ukazuje, jak jsou procesy propojeny v systému Linux. Procesy bez rodičů se k systému připojují prostřednictvím init nebo systemd. Tisk vyžaduje použití následujícího formátu:

$ ps -e --forest

13) Filtrujte proces podle procesu vlákna

Chcete-li filtrovat proces pomocí vlákna procesu, použijte příznak -L jak je znázorněno,

$ ps -L 1446

14) Monitorování procesů v reálném čase

Ke sledování statických informací o procesu můžete použít nástroj sledování. Výstup se přehrává každou sekundu, jak je znázorněno níže

$ watch -n 1 'ps -eo pid,ppid,cmd,%mem,%cpu --sort=-%cpu | hlava'

Příkaz vytiskne sloupce pid, ppid, cmd, %mem a %cpu a každou sekundu sleduje statistiky při třídění % využití CPU v sestupném pořadí.

15) Odstraňování problémů s výkonem počítače se systémem Linux

Když je váš systém pomalý nebo přetížený, můžete identifikovat nejběžnější proces podle nejvyššího využití CPU a paměti

Provedením následujícího příkazu ps vypíšete top procesy, které spotřebovávají velkou paměť,

$ ps -eo pid,ppid,cmd,%mem,%cpu --sort=-%mem | hlava

Provedením následujícího příkazu ps vypíšete top procesy, které spotřebovávají vysoký cpu,

$ ps -eo pid,ppid,cmd,%mem,%cpu --sort=-%cpu | hlava

Ukázkový výstup výše uvedeného příkazu ps v mém systému je níže,

16) Zabíjení nereagujících procesů

Příkaz ps vám umožní ukončit nereagující aplikace nebo jakékoli procesy, které zatěžují CPU a RAM. Chcete-li to provést, musíte najít PID této konkrétní aplikace pomocí příkazu:

$ ps -A | grep -i stress

Jakmile najdete PID procesu, můžete jej ukončit pomocí příkazu kill, příklad je uveden níže,

$ kill -9 2583 2584

17) Seznam všech PID všech instancí procesu

Můžete vypsat všechny PID spojené s procesem pomocí syntaxe:

$ ps -C -o pid=

Chcete-li například zjistit PID související s webovým serverem httpd, spusťte:

$ ps -C httpd -o pid=

18) Zobrazte dobu, po kterou procesy běží

Chcete-li zobrazit, jak dlouho procesy běží, spusťte příkaz:

$ ps -eo comm,etime,user

Pomocí níže uvedeného příkazu ps zjistíte, jak dlouho konkrétní proces běží,

$ ps -o etime -p

Předpokládejme, že chceme vědět o procesu mysql

[[e-mail chráněný] ~]$  ps -C mysqld -o pid= 3807[[e-mail chráněný] ~]$[[chráněn e-mailem] ~]$ ps -o etime -p 3807    Uplynulo   01:13:56[ [e-mail chráněn] ~]$

19) Vyjmenujte podřízené procesy procesu

Chcete-li vytisknout nebo vypsat podřízené procesy procesu, použijte příznak -C v níže uvedené syntaxi:

$ ps -C

Chcete-li například vypsat podřízené procesy spojené s procesem httpd, spusťte

[[e-mail chráněn] ~]$ ps -C httpd  PID TTY          ČAS CMD31911 ? 00:00:00 httpd31918? 00:00:00 httpd31919? 00:00:00 httpd31920? 00:00:01 httpd31921? 00:00:01 httpd31922? 00:00:01 httpd[[e-mail chráněn] ~]$

20) Filtrování výstupu příkazu ps pomocí  grep

Chcete-li získat konkrétní výsledky v příkazu ps , můžete výstup převést do nástroje grep a zadat kritéria vyhledávání.

Chcete-li například vyhledávat nebo zúžit na proces php, spusťte příkaz:

$ ps -ef | grep php

Uvedli jsme 20 nejlepších příkazů ps, které se běžně používají pro výpis a monitorování procesů běžících na vašem systému Linux. Tyto příkazy budou fungovat ve všech linuxových distribucích a jistě vám poskytnou přehled o procesech běžících na vašem systému a pomohou vám určit, které přetěžují váš CPU a RAM zdroje. Přišel vám tento průvodce srozumitelný? Neváhejte a lajkujte a sdílejte na svých platformách sociálních médií. Vaše zpětná vazba je velmi vítána.

Přečtěte si také :25 hlavních příkladů příkazů pro sledování výkonu serveru Linux


Linux
  1. 7 Příklady příkazů Linux df

  2. 8 Příklady příkazů Linux TR

  3. Příklady příkazů rm v Linuxu

  1. Linuxový příkaz ps

  2. Příklady příkazů ps v Linuxu

  3. w Příklady příkazů v Linuxu

  1. sa Příklady příkazů v Linuxu

  2. Příklady příkazů ac v Linuxu

  3. Příklady příkazů df v Linuxu