GNU/Linux >> Znalost Linux >  >> Ubuntu

Správa procesů v Ubuntu Linux

Správa procesů v Linuxu je důležité téma, které je třeba se naučit a pochopit, protože se jedná o multitaskingový operační systém a mnoho procesů běžících současně. Linux poskytuje mnoho nástrojů pro správu procesů, jako je výpis běžících procesů, zabíjení procesů, monitorování využití systému atd. V Linuxu je každý proces reprezentován svým ID procesu (PID). Proces má některé další atributy, jako je ID uživatele a ID skupiny, pokud proces spustí uživatel nebo skupina. Někdy potřebujete zabít nebo interagovat s procesem, takže byste měli vědět, jak tyto procesy spravovat, aby váš systém fungoval hladce. V Linuxu lze procesy spravovat pomocí příkazů jakops, pstree, pgrep, pkill, lsof, top, nice, renice and kill, atd.

Procesy

Spuštění instance programu se nazývá proces. V Linuxu se ID procesu (PID) používá k reprezentaci procesu, který je charakteristický pro každý proces. Existují dva typy procesů,

  • Procesy na pozadí
  • Procesy na popředí

Procesy na pozadí

Procesy na pozadí začínají v terminálu a běží samy. Pokud spustíte proces v terminálu, jeho výstup se zobrazí v okně terminálu a můžete s ním pracovat, ale pokud s procesem interagovat nepotřebujete, můžete jej spustit na pozadí. Pokud chcete spustit proces na pozadí, stačí přidat znak „&“ na konec příkazu a spustí se na pozadí; ušetří vám to čas a budete moci zahájit další proces. Pro výpis procesů běžících na pozadí použijte příkaz ‚jobs.‘ Zobrazí všechny běžící procesy na pozadí.

Například upgrade je v Linuxu dlouhý proces. Zabere to příliš mnoho času, a pokud chcete během upgradu systému dělat jiné věci, použijte příkaz na pozadí.

[chráněno e-mailem]:~$ sudo apt-get upgrade -y &

Začne běžet na pozadí. A mezitím můžete komunikovat s jinými programy. Zadáním tohoto příkazu můžete zkontrolovat, kolik a které procesy běží na pozadí.

[email protected]:~$ jobs
[1]+ Spuštění sudo apt-get upgrade -y &

Procesy v popředí

Všechny procesy, které spouštíme v terminálu, jsou ve výchozím nastavení spuštěny jako procesy na popředí. Můžeme je spravovat pomocí příkazů na popředí a na pozadí.

Jakýkoli proces na pozadí uvedený v úlohách můžete přenést do popředí zadáním příkazu „fg“ následovaného číslem procesu na pozadí.

[e-mail chráněný]:~$ fg %1
sudo apt-get upgrade -y

A pokud chcete tento proces přenést na pozadí, zadejte tento příkaz.

[e-mail chráněný]:~$ bg %1

Výpis a správa procesů pomocí příkazu ps

Proces výpisu pomocí příkazu ps je jedním z nejstarších způsobů, jak zobrazit běžící procesy terminálu. Zadejte příkaz ps a vypište, které procesy jsou spuštěny, kolik systémových prostředků využívají a kdo je spouští.

[e-mail chráněný]:~$ ps u
USER PID %CPU %MEM VSZ RSS TTY STAT PŘÍKAZ ČASU START
Jim 1562 0,0 0,0 164356 6476 tty2 Ssl+ 13:07 0:00 shell
Jim 1564 5,2 0,9 881840 78704 tty2 Sl+ 3:07 13:13 dauth
Jim 2919 0,0 0,0 11328 4660 bodů/0 Ss 13:08 0:08 0:00 06 1 01 1 03 03 1 1 03 1 03 1 1 :19 0:00 ps u
…stříhat…

Sloupec uživatele zobrazuje jméno uživatele ve výše uvedené tabulce a PID zobrazuje ID procesu. PID můžete použít k ukončení nebo k odeslání signálu ukončení procesu. %CPU ukazuje CPU procento procesoru a %MEM ukazuje využití paměti s náhodným přístupem. Chcete-li proces ukončit, zadejte.

[chráněno e-mailem]:~$ zabití [ ID procesu (PID) ]

nebo

[e-mail chráněný]:~$ kill -9 [ ID procesu (PID) ]

Pomocí příkazu ps aux zobrazíte všechny běžící procesy a přidejte kanál, abyste je viděli v pořadí.

[e-mail chráněný]:~$ ps aux | méně

Pokud chcete změnit uspořádání sloupců, můžete to udělat přidáním příznaku -e pro výpis všech procesů a -o pro označení sloupců pomocí klíčových slov v příkazu ps.

[e-mail chráněný]:~$ps -eo pid,user,uid,%cpu,%mem,vsz,rss,comm
PID UID UŽIVATELE %CPU %MEM VSZ RSS PŘÍKAZ
1 root 0 0,1 0,1 167848 11684 systemed
3032 jim 1000 16,5 4,7 21744776 386524 chrom
…snip…

Možnosti pro příkaz ps.

volba u se používá pro výpis procesů podle uživatelů.

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

Možnost f se používá k zobrazení celého seznamu.

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

x se používá k zobrazení informací o procesu bez terminálu.

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

Volba se používá k zobrazení rozšířených informací.

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

volba se používá pro výpis všech procesů s terminálem.

[chráněný e-mailem]:~$ ps a

v se používá k zobrazení formátu virtuální paměti.

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

Příznaky pro příkaz ps.

Parametr -e se používá k zobrazení všech procesů v systému.

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

Parametr -u se používá k zobrazení procesů běžících jako root.

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

Parametr -f se používá pro úplný seznam procesů.

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

Parametr -o se používá pro výpis procesů v požadovaném sloupci.

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

pstree je další příkaz pro výpis procesů; zobrazuje výstup ve stromovém formátu.

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

Možnosti příkazu pstree

-n se používá pro třídění procesů podle PID.

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

-H se používá pro zvýraznění procesů.

[chráněno e-mailem]:~$ pstree -H [PID]
[chráněno e-mailem]:~$ pstree -H 6457

-a se používá pro zobrazení výstupu, včetně argumentů příkazového řádku.

[e-mail chráněný]:~$ pstree -a

-g se používá pro zobrazení procesů podle ID skupiny.

[e-mail chráněný]:~$ pstree -g

-s se používá k setí stromu nebo specifickému procesu.

[chráněno e-mailem]:~$ pstree -s [PID]
[chráněno e-mailem]:~$ pstree -s 6457

[uživatelské_jméno] se používá k zobrazení procesů vlastněných uživatelem.

[e-mail chráněný]:~$ pstree [uživatelské_jméno]
[e-mail chráněný]:~$ pstree jim
pgrep

Pomocí příkazu pgrep můžete najít běžící proces na základě určitých kritérií. K vyhledání můžete použít celý název nebo zkratku procesu nebo podle uživatelského jména či jiných atributů. pgrep se řídí následujícím vzorem.

[chráněno e-mailem]:~$ Pgrep [volba] [vzor]
[chráněno e-mailem]:~$ pgrep -u jim chrome
Možnosti příkazu pgrep

-i se používá pro vyhledávání bez rozlišení malých a velkých písmen

[chráněný e-mailem]:~$ Pgrep -i firefox

-d se používá pro ohraničení výstupu

[e-mail chráněný]:~$ Pgrep -u jim -d:

-u se používá k nalezení procesu vlastněného uživatelem

[e-mail chráněný]:~$ Pgrep -u jim

-a se používá pro výpis procesů vedle jejich příkazů

[e-mail chráněný]:~$ Pgrep -u jim -a

-c se používá k zobrazení počtu odpovídajících procesů

[e-mail chráněný]:~$ Pgrep -c -u jim

-l se používá pro výpis procesů a jejich název

[e-mail chráněn]:~$ Pgrep -u jim -l
pkill

Pomocí příkazu pkill můžete odeslat signál běžícímu procesu na základě určitých kritérií. K vyhledání můžete použít celý název nebo zkratku procesu nebo podle uživatelského jména či jiných atributů. pgrep se řídí následujícím vzorem.

[chráněno e-mailem]:~$ Pkill [Možnosti] [Vzory]
[chráněno e-mailem]:~$ Pkill -9 chrome
Možnosti příkazu pkill

–signál slouží k vysílání signálu např. SIGKILL, SIGTERM atd.

[chráněný e-mailem]:~$ Pkill –signál SIGTERM vscode

-HUP se používá k opětovnému načtení procesu

[chráněný e-mailem]:~$ Pkill -HUP syslogd

-f se používá pro zabíjení procesů založených na úplném příkazovém řádku.

[chráněno e-mailem]:~$ Pkill -f „ping 7.7.7.7“

-u se používá k ukončení všech procesů vlastněných uživatelem.

[e-mail chráněn]:~$ Pkill -u jim

-i se používá pro zabití procesu pomocí pkill bez ohledu na velikost písmen.

[e-mail chráněný]:~$ Pkill -i firefox

-9 se používá k odeslání signálu zabíjení.

[chráněno e-mailem]:~$ Pkill -9 chrome

-15 se používá k odeslání ukončovacího signálu.

[chráněno e-mailem]:~$ Pkill -15 vlc
lsof (seznam otevřených souborů)

Tento nástroj příkazového řádku se používá pro výpis souborů otevřených několika procesy. A jak víme, všechny systémy UNIX/Linux rozpoznají vše jako soubor, takže k výpisu všech otevřených souborů je vhodné použít příkaz lsof.

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

Ve výše uvedené tabulce příkazu lsof FD představuje popis souboru, cwd představuje aktuální pracovní adresář, txt znamená textový soubor, mem znamená soubory mapované v paměti, mmap znamená zařízení mapovaná v paměti, REG představuje běžný soubor, DIR představuje adresář, rtd znamená kořenový adresář. Existují další možnosti, které můžete použít s příkazem lsof.

Možnosti pro příkaz lsof.

-c se používá pro výpis otevřených souborů podle názvu procesu.

[e-mail chráněný]:~$ lsof -c chrome

-u se používá pro výpis otevřených souborů uživatelem.

[e-mail chráněný]:~$ lsof -u jim

-i se používá pro výpis procesů prováděných na portu.

[e-mail chráněný]:~$ lsof -i

+D se používá pro výpis otevřených souborů v adresáři.

[e-mail chráněný]:~$ lsof +D /home/

-p se používá pro výpis otevřených souborů procesem.

[e-mail chráněný]:~$ lsof -p 1342

Výpis a správa procesu pomocí top Command

Pomocí příkazu top můžete zobrazit pohled na běžící systémové procesy v reálném čase. Zobrazuje procesy v závislosti na využití procesoru. Sloupec si můžete seřadit podle sebe. Příkaz top také poskytuje některé informace o vašem systému, například jak dlouho systém běží nebo kolik uživatelů je k systému připojeno a kolik procesů běží, kolik CPU a RAM se využívá a seznam každého z nich. proces.

Zadejte příkaz top pro seznam spuštěných procesů.

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

Úkoly:celkem 291, 1 běh, 290 spánek, 0 zastavení, 0 zombie

%Cpu(y):2,3us, 0,3sy, 0,0ni, 97,0id, 0,3wa, 0,0hi, 0,0si, 0,0st

MiB Mem:celkem 7880,6, 1259,9 volných, 3176 použitých, 3444,4 buff/mezipaměť

MiB Swap:2048,0 celkem, 2048,0 zdarma, 0,0 využito. 4091,8 dostupná paměť

PID UŽIVATELE PR NI VIRT RES SHR S %CPU %MEM TIME+ PŘÍKAZ

3241 jim 20 0 20,7 g 33512 10082 S 1,7 4,2 0:54,24 chrom

3327 jim 20 0 4698084 249156 86456 S 1.3 3.1 1:42.64 chrom

2920 jim 20 0 955400 410868 14372 S 1.0 5.1 7:51.04 chrom

3423 jim 20 0 4721584 198500 10106 S 1.0 2.5 0:49.00 chrom

3030 jim 20 0 458740 114044 66248 S 0,7 1,4 3:00,47 chrom

3937 jim 20 0 4610540 104908 72292 S 0,7 1,3 0:05,91 chrom

1603 jim 20 0 825608 67532 40416 S 0,3 0,8 3:13,52 Xorg

1756 jim 20 0 4154828 257056 10060 S 0,3 3,2 5:53,31 gnome-s+

1898 jim 20 0 289096 29284 5668 S 0,3 0,4 1:06,28 fusuma

3027 jim 20 0 587580 14304 75960 S 0,3 1,8 9:43,59 chrom

3388 jim 20 0 4674192 156208 85032 S 0,3 1,9 0:13,91 chrom

3409 jim 20 0 4642180 140020 87304 S 0,3 1,7 0:15,36 chrom

3441 jim 20 0 16,5 g 156396 89700 S 0,3 1,9 0:25,70 chrom

….stříhat….

Pomocí příkazu top můžete také provést některé akce a provést změny v běžících procesech; zde je seznam níže.

  • u stisknutím „u“ můžete zobrazit proces spuštěný určitým uživatelem.
  • M stisknutím „M“ můžete uspořádat podle využití RAM, nikoli podle využití CPU.
  • P stisknutím „P“ můžete třídit podle využití CPU.
  • 1 stisknutím „1“ přepínejte mezi využitím CPU, pokud jich je více.
  • R stisknutím „R“ můžete výstup seřadit obráceně.
  • h stisknutím „h“ můžete přejít na nápovědu a stisknutím libovolné klávesy se vrátit.

Všimněte si, který proces spotřebovává více paměti nebo CPU. Ty procesy, které spotřebovávají více paměti, mohou být zabity a ty procesy, které spotřebovávají více CPU, mohou být přeměněny tak, aby byly pro procesor méně důležité.

Ukončit proces nahoře: Stiskněte k a napište ID procesu, který chcete zabít. Poté zadejte 15 nebo 9, abyste zabili normálně nebo okamžitě; můžete také zabít proces pomocí příkazu kill nebo killall.

Renice a proces nahoře: Stiskněte r a napište PID procesu, který chcete získat zpět. Požádá vás, abyste zadali PID procesu a poté hodnotu nicing, kterou chcete tomuto procesu přiřadit, mezi -19 až 20 (-19 znamená nejvyšší důležitost a 20 znamená nejnižší důležitost).

Výpis a správa procesů pomocí nástroje System Monitor

Linux má systémový monitor gnome, který zobrazuje běžící procesy dynamičtěji. Chcete-li spustit systémový monitor, stiskněte klávesu windows a napište systémový monitor, klikněte na jeho ikonu a uvidíte procesy ve sloupcích. Kliknutím pravým tlačítkem na ně můžete proces zabít, zastavit nebo obnovit.

Probíhající procesy se zobrazují s uživatelskými účty v abecedním pořadí. Procesy můžete třídit podle libovolného záhlaví pole, jako je CPU, Paměť atd., stačí na ně kliknout a budou seřazeny; například klikněte na CPU a uvidíte, který proces spotřebovává nejvíce energie CPU. Chcete-li procesy spravovat, klikněte na ně pravým tlačítkem a vyberte možnost, kterou chcete s procesem provést. Chcete-li proces řídit, vyberte následující možnosti.

  • Vlastnosti- zobrazit další nastavení související s procesem.
  • Mapy paměti- zobrazit mapy systémové paměti, aby bylo vidět, která knihovna a další komponenty jsou pro tento proces používány v paměti.
  • Otevřít soubor- ukazuje, které soubory proces otevírá.
  • Změnit prioritu- zobrazte postranní panel, ze kterého můžete proces zopakovat s možnostmi od velmi vysoké po velmi nízkou a vlastní.
  • Stop- pozastaví proces, dokud nezvolíte pokračování.
  • Pokračovat- restartuje pozastavený proces.
  • Zabít- Síla okamžitě zabije proces.

Zabití procesu pomocí kill and killall

kill a příkaz killall se používá pro zabití/ukončení běžícího procesu. Tyto příkazy lze také použít k odeslání platného signálu běžícímu procesu, jako je například sdělování procesu, aby pokračoval, ukončil nebo znovu načetl konfigurační soubory atd. Signály lze zapisovat oběma způsoby čísly nebo jménem. Níže jsou uvedeny některé běžně používané signály.

Popis čísla signálu

SIGHUP 1 Detekuje signál zavěšení na ovládacím terminálu.

SIGINT 2 Interpretováno z klávesnice.

SIGQUIT 3 Ukončete z klávesnice.

SIGILL 4 Nezákonné pokyny.

SIGTRAP 5 Používá se pro sledování pasti.

SIGABRT 6 se používá pro přerušení signálu z abort(3).

SIGKILL 9 Slouží k odeslání signálu zabití.

SIGTERM 15 Používá se pro odeslání ukončovacího signálu.

SIGCONT 19,18,25 Používá se k pokračování procesu, pokud je zastaven.

SIGSTOP 17,19,23 Používá se pro zastavení procesů.

V různých operačních systémech Unix/Linux se používají různé hodnoty SIGCONT a SIGSTOP. Pro podrobné informace o signálech zadejte signální terminál man 7.

Použití příkazu kill pro odeslání signálu ke zpracování podle PID.

Poznamenejte si proces, kterému chcete poslat signál zabíjení. ID procesu (PID) můžete najít pomocí příkazu ps nebo top.

PID UŽIVATELE PR NI VIRT RES SHR S %CPU %MEM TIME+ PŘÍKAZ

7780 jim 20 0 12596 4364 3460 R 33,3 3,2 13:54:12 nahoru

Nejvyšší proces spotřebovává 33,3 % CPU. Pokud chcete tento proces ukončit, abyste ušetřili využití procesoru, zde je několik způsobů, jak tento proces ukončit příkazem kill.

[e-mail chráněn]:~$ zabít 7780

[chráněno e-mailem]:~$ kill -15 7780 nebo $ kill -SIGTERM 7780

[chráněno e-mailem]:~$ kill -9 7780 nebo $ kill -SIGKILL 7780

Použití příkazu killall k odeslání signálů procesu podle jména.

S příkazem killall nemusíte hledat ID procesu; můžete poslat signál zabití procesu podle jména, nikoli podle id procesu. Pokud si nedáte pozor, může také zabít více procesů, než chcete, například „killall chrome“ zabije všechny procesy chrome, včetně těch, které zabít nechcete. Někdy je užitečné zabít procesy stejného jména.

Podobně jako u příkazu kill můžete v příkazu killall zadávat signály podle názvu nebo čísla. Zabijte jakýkoli běžící proces pomocí příkazu killall; stačí zadat jeho název a signál, který chcete odeslat. např. pošlete firefox signál o zabití pomocí příkazu killall, napište níže uvedený příkaz.

[e-mail chráněný]:~$ killall -9 firefox

nebo

[chráněno e-mailem]:~$ killall SIGKILL chrome

Změna priority procesu pomocí nice and renice

Každý proces ve vašem linuxovém systému má vynikající hodnotu a pohybuje se mezi -19 až 20. Rozhodovalo, který proces by získal větší přístup k CPU v systému. Čím nižší je hodnota nice, tím větší přístup má proces k procesu CPU. Jako -16 pěkných hodnot má větší přístup k CPU než 18 pěkných hodnot. Pouze uživatel s právy root může přiřadit zápornou hodnotu nice. Normální uživatel může přiřadit hodnotu „nice“ pouze mezi 0 až 19. Běžný uživatel může přiřadit pouze vyšší hodnoty nice a svým vlastním procesům. Uživatel root může každému procesu nastavit libovolnou pěknou hodnotu.

Pokud chcete, aby byl proces přístupnější pro využití CPU přiřazením hodnoty nice, zadejte následující příkaz.

[chráněno e-mailem]:~$ pěkný +3 chrom

A renice proces

[e-mail chráněný]:~$ renice -n -6 3612

Závěr

Zde je průvodce pro správu vašeho linuxového systému pomocí ps, top, lsof, pstree, pkilll, kill, killall, nice, renice atd. Některé procesy spotřebují většinu využití CPU a RAM; Vědět, jak je spravovat, zvyšuje rychlost a výkon vašeho systému a poskytuje vám lepší prostředí pro efektivnější spouštění procesů, které chcete.


Ubuntu
  1. Nainstalujte Dropbox na Ubuntu 14.10

  2. 30 Cvičení procesů Linuxu pro systémové správce

  3. Linux – Init Process:Předchůdce všech procesů?

  1. Správa procesů na Linuxu pomocí kill and killall

  2. Jak zabít proces v Linuxu? Příkazy k ukončení

  3. MX Linux vs. Ubuntu

  1. Jak vypsat běžící procesy v Linuxu

  2. Ubuntu Linux ke stažení

  3. Nainstalujte Gitlab na Ubuntu Linux