Předpokládejme, že poprvé prozkoumáváte příkazový řádek Linuxu nebo vstupujete do administrace Linuxu. V takovém případě je základní znalost toho, jak obcházet terminál a provádět základní úkoly, na nízké úrovni. Abychom vám pomohli porozumět těmto pojmům, podívejte se na mé předchozí dva články:
- 10 příkazů, které vám pomohou začít s terminálem
-
10 dalších příkazů pro manipulaci se soubory
Pokud se však s těmito koncepty cítíte dobře, posuneme vaše znalosti Linuxu v tomto článku o něco dále. Podíváme se na procesy a na to, jak je spravovat.
Takže, co přesně je proces ?
V Linuxu je proces jakákoli aktivní (běžící) instance programu. Ale co je to program ? Technicky vzato je program jakýkoli spustitelný soubor uložený v úložišti na vašem počítači. Kdykoli spustíte program, vytvořili jste proces. Na základní úrovni je to docela snadné spravovat a na to se dnes podíváme.
Co potřebujete, abyste mohli začít
Doporučuji, abyste to sledovali na svém oblíbeném virtuálním počítači. Tímto způsobem se můžete pokusit a selhat bez následků (což je rozhodně nejlepší způsob, jak se u terminálu pohodlně usadit).
U této ukázky spustím proces spánku na 500 sekund. Tento přístup vám umožňuje vidět proces, aniž bych ve svém systému prováděl smysluplné změny.
[tcarrigan@client ~]$ spánek 500^Z[1]+ Zastaveno spánek 500
Poté jsem proces zastavil pomocí Ctrl+Z abychom mohli používat náš terminál.
1. Seznam procesů
Chcete-li zobrazit aktuálně aktivní procesy, použijte ps
příkaz:
[tcarrigan@client ~]$ ps PID TTY TIME CMD 2648 pts/0 00:00:00 bash 3293 pts/0 00:00:00 spánek 0 00:0 kód>
Zde získáte malé informace o aktivních procesech ve vašem systému. Budete chtít věnovat pozornost PID (jedinečné ID procesu), TIME (doba, po kterou proces běží), a CMD (příkaz spuštěný ke spuštění procesu).
2. Podrobný seznam (procesů)
Chcete-li zobrazit neuvěřitelně podrobný seznam procesů, můžete použít ps aux
příkaz.
- a – všichni uživatelé
- u – zobrazuje uživatele/vlastníka
- x – zobrazuje procesy, které nejsou v terminálu provedeny (výstup je proto poměrně dlouhý)
Příkaz můžete vidět zde (výstup upraven pro délku):
[tcarrigan@client ~] $ ps auxuser PID %cpu %mem vsz rss tty stat čas příkazového příkazu+ 3293 0,0 0,0 215292 520 bodů/0 t 13:41 0:00 Sleep 500root 3380 0,0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 I 13:45 0:00 [kworker/1:1-mm_percpu_wq]root 3381 0.0 0.0 0 0 ? I 13:45 0:00 [kworker/1:3]kořen 3398 0.0 0.0 0 0 ? I 13:46 0:00 [kworker/3:2-ata_sff]root 3481 0.0 0.0 0 0 ? I 13:50 0:00 [kworker/u8:2-flush-253:0]root 3482 0.0 0.0 0 0 ? I 13:50 0:00 [kworker/0:1-events]root 3483 0.0 0.0 0 0 ? I 13:50 0:00 [kworker/0:2]kořen 3508 0.0 0.0 0 0 ? I 13:51 0:00 [kworker/3:0-ata_sff]root 3511 0.0 0.0 18892 7732 ? S 13:52 0:00 systemd-userworkroot 3512 0,0 0,0 18892 7656 ? S 13:52 0:00 systemd-userworkroot 3513 0,0 0,0 18892 7656 ? S 13:52 0:00 systemd-userworkroot 3566 0,4 0,0 432792 8024 ? Ssl 13:54 0:00 /usr/libexec/fprintdtcarrig+ 3598 0.0 0.0 228208 3948 pts/0 R+ 13:54 0:00 ps aux
3. Kill by PID
Proces se nevyhnutelně zasekne a vy budete muset zabít
to. Čím více času strávíte v CLI, tím je pravděpodobnější, že budete potřebovat kill
příkaz. Nejpřesnější způsob, jak identifikovat proces, je pomocí ID procesu (PID).
Použijte následující syntaxi:
[tcarrigan@client ~]$ kill PID
Tento příkaz odešle SIGTERM signál. Pokud však máte co do činění se zaseknutým procesem, přidejte -9
možnost.
[tcarrigan@client ~]$ ps PID TTY TIME CMD 2648 pts/0 00:00:00 bash 3293 pts/0 00:00:00 spánek 04:00:00 spánek 04 00:07 spánek:0 04 07 0 0 /0 00:00:00 spánek 40540 bodů/0 00:00:00 ps[tcarrigan@client ~]$ sudo kill -9 3293[sudo] heslo pro tcarrigan: [1] Zabito 5 > code
4. Zabít podle jména/klíčového slova
Použijte killall
příkaz k ukončení procesu podle jména. Tento příkaz ukončí všechny procesy s klíčovým slovem/názvem, které zadáte.
Syntaxe je:
[tcarrigan@client ~]$ killall spánek
To by zabilo veškerý spánek
procesy aktivní v systému (-9
možnost funguje i zde). Zde je příklad:
[tcarrigan@client ~]$ ps PID TTY TIME CMD 2648 pts/0 00:00:00 bash 4684 pts/0 00:00:00 spánek 04:04 spánek 04 05 0 0 04 /0 00:00:00 ps[tcarrigan@client ~]$ killall -9 spánek [2]- Zabito spánek 500[3]+ Zabito 0 sleep>
5
Tyto dva následující příkazy jdou ruku v ruce. Umožňují vám přesouvat/spravovat příkazy na pozadí. Níže podám základní pohled na syntaxi; nicméně pro podrobný pohled na tyto příkazy viz můj předchozí článek na toto téma.
5. Vypsat úlohy na pozadí a obnovit úlohy na pozadí
Pro výpis a správu úloh na pozadí použijeme bg
příkaz. Spustil jsem nový sleep 500
proces a poté jej zastavil a odeslal na pozadí. Vidíme jej tedy uvedený při spuštění bg
níže:
[tcarrigan@client ~]$ bg[1]+ spánek 500 &
6. Přenést do popředí nejnovější úlohu
K tomu použijeme fg
příkaz. Tím se do popředí dostane naposledy spuštěná úloha/proces. Následující příklad je pokračováním výše uvedeného příkazu. 500 spánku
proces, který je na pozadí, je nyní aktivní na pozadí. Pojďme to vynést na světlo...
[tcarrigan@client ~]$ fgsleep 500
Tento příkaz nás přivádí k našemu poslednímu příkazu v tomto seznamu.
7. Přeneste do popředí konkrétní úlohu
Použijte fg
příkaz znovu, ale vyberte konkrétní úlohu, kterou chcete přenést do popředí (místo nejnovější). Chcete-li to provést, přidáme k příkazu název úlohy/procesu.
[tcarrigan@client ~]$ fg XXXample
To přináší úlohu XXXample do popředí.
[ Chcete si vyzkoušet své schopnosti správce systému? Proveďte hodnocení dovedností ještě dnes. ]
Koneckonců
V dnešním Linux Command Basics jsme se podívali na procesy a jak je spravovat. Nyní můžete provádět obecné úlohy správy procesů – vše od výpisu a zabíjení až po přesun mezi pozadím a popředím. Pokud existují další obecné oblasti správy Linuxu, pro které byste rádi viděli vyhrazený seznam příkazů, zašlete e-mail týmu na adresu [email protected] a já udělám vše, co bude v mých silách, abych to pro vás uvedl.