Fotografický magazín "iZIN IDIF" každý týden ve Vašem e-mailu.
Co nového ve světě fotografie!
Zadejte Vaši e-mailovou adresu:
Kamarád fotí rád?
Přihlas ho k odběru fotomagazínu!
Zadejte e-mailovou adresu kamaráda:
Software
A k čemu že je "ps" dobré?
17. října 2002, 00.00 | V několika minulých dílech jsme si ukázali, jak pracovat s příkazem ps; teď se podíváme na to, kdy a jak se nám to může hodit.
V několika minulých dílech jsme si ukázali, jak pracovat s příkazem ps; teď se podíváme na to, kdy a jak se nám to může hodit.
Kdo mi to tu loupe CPU?
Asi nejjednodušší je použít příkaz ps ke zjištění, kdo nejvíc využívá procesor: na to stačí přepínač -u, se kterým jsme se seznámili minule (a — pokud nás zajímá přehled všeho, co se v počítači děje — přepínače -ax, jež známe už od začátku povídání o příkazu ps). My si ukážeme jen výpis vlastních procesů v rámci terminálu, abychom zkrátili příklady:
64 /tmp> ps -u
USER PID %CPU %MEM VSZ RSS TT STAT TIME COMMAND
ocs 348 0.0 0.0 1732 268 p1 Ss 0:00.08 -zsh (zsh)
ocs 352 0.0 0.1 1732 512 std Ss 0:00.45 -zsh (zsh)
ocs 354 0.0 0.0 1492 64 p1 S+ 0:00.45 telnet cisco
65 /tmp>
Za normálních okolností bude mít většina procesů %CPU velmi blízko nuly: skoro všechny procesy nedělají většinu doby nic jiného, než že čekají na nějakou akci, a přitom samozřejmě CPU "nežerou".
Výjimkou mohou být aplikace, které skutečně něco rozumného dělají "na pozadí", nebo špatně napsané programy, které místo toho, aby slušně počkaly až se něco stane, se každou chvilku nedočkavě ptají zda to už náhodou nenastalo — tomuto nešvaru se odborně říká polling.
Ukažme si velmi jednoduchý příklad špatně napsaného programu — prostě skript, který sice nedělá nic rozumného, ale zato to dělá pořád a pořád dokola:
65 /tmp> >badscript
while (true) do
done
66 /tmp> chmod a+x badscript
67 /tmp>
Pokud takový skript spustíme a podíváme se do seznamu procesů, hned bude jeho %CPU výrazně vystupovat; spustíme-li jej dokonce vícekrát najednou, uvidíme něco jako
74 /tmp> ./badscript & ./badscript & ./badscript &
[1] 17752
[2] 17753
[3] 17754
75 /tmp> ps -u
USER PID %CPU %MEM VSZ RSS TT STAT TIME COMMAND
ocs 17753 16.1 0.1 1732 480 std RN 0:00.75 sh ./badscript
ocs 17752 6.4 0.1 1732 480 std RN 0:00.62 sh ./badscript
ocs 17754 4.3 0.1 1732 480 std RN 0:00.64 sh ./badscript
ocs 348 0.0 0.0 1732 268 p1 Ss 0:00.08 -zsh (zsh)
...
76 /tmp>
Pryč s ním
Informace z příkazu ps můžeme ihned použít pro odstranění takových nevycválaných procesů — pokud, samozřejmě, nedělají něco žádoucího: stačí použít příkaz kill, a jako argument mu dát PID procesu (nebo procesů), kterého se chceme zbavit:
76 /tmp> kill 17753 17752 17754
77 /tmp>
[1] terminated ./badscript
77 /tmp>
[3] + terminated ./badscript
77 /tmp>
[2] + terminated ./badscript
77 /tmp> ps -u
USER PID %CPU %MEM VSZ RSS TT STAT TIME COMMAND
ocs 348 0.0 0.0 1732 268 p1 Ss 0:00.08 -zsh (zsh)
ocs 352 0.0 0.1 1732 516 std Ss 0:00.56 -zsh (zsh)
ocs 354 0.0 0.0 1492 64 p1 S+ 0:00.45 telnet cisco
78 /tmp>
Obsah seriálu (více o seriálu):
- Obcování s ďáblem
- Obcování s ďáblem 2 - základy
- Obcování s ďáblem 3 - Práce se soubory
- Obcování s ďáblem 4 - Další práce se soubory
- Obcování s ďáblem 5 - Stále soubory, hlavně linky
- Obcování s ďáblem 6: Pár zbývajících drobností
- Obcování s ďáblem 7: Samá voda, přihořívá, hoří!
- Obcování s ďáblem 8: Jak se do shellu volá, tak se program ozývá
- Obcování s ďáblem 9: Nové finty na programy
- Obcování s ďáblem 10: Do fronty, pánové, do fronty!
- Obcování s ďáblem 11: Standardní vstup a výstup
- Obcování s ďáblem 13: Další triky
- Obcování s ďáblem 14: Vyšší škola hledání souborů
- Obcování s ďáblem 15: Příkaz find stokrát jinak
- Obcování s ďáblem 16: Co se ještě dá uvařit z příkazu find
- Obcování s ďáblem 17: Regulární výrazy
- Obcování s ďáblem 18: Speciální regulární výrazy
- Obcování s ďáblem 19: Skládání regulárních výrazů
- Obcování s ďáblem 20: Regulární výrazy se zpětnými odkazy
- Obcování s ďáblem 21:K čemu je dobrý grep...
- Zázraky ihned, nemožné na počkání: sed
- Obcování s ďáblem - další finty s příkazem sed
- Rozsáhlejší příklad se sedem
- Obcování s ďáblem: Další kouzla, aneb awk
- Awk a proměnné
- Obcování s ďáblem 27: Awk a výrazy
- Obcování s ďáblem: Awk a funkce
- Awk a příkazy
- Co je to vlastně "uživatel"?
- Vlastnictví objektů
- Přístupová práva
- Vlastník, skupina, ostatní...
- Jak je to se skupinami?
- Skupiny a uživatelé
- Scripty
- Komentáře, a volba shellu
- Pro skript může být shell cokoli!
- Shellové skripty a argumenty
- Skripty a proměnné: aritmetika
- Proměnné shellu, "dědění" hodnot
- Práce s proměnnými
- Práce se jmény souborů
- Pole hodnot
- Další triky kolem polí...
- Standardní proměnné shellu
- Základní příkazy pro skripty
- Příkaz if
- Speciální podmínkové příkazy
- Podmínky pro práci se soubory
- Jednoduchý cyklus
- Příkaz for a pomocné příkazy break a continue
- Příkaz case
- Příkazy exit a select
- Rejstřík a přehled
- Procesy
- Informace o procesech
- Další klíčová slova pro příkaz ps
- Příkaz ps: několik praktických přepínačů
- A k čemu že je "ps" dobré?
- Copak procesor, s pamětí je to horší
- Virtuální paměť
- A ještě jednou virtuální paměť
- Zpět k příkazu ps
- Skutečný žrout paměti
- Ještě jednou top
- Doplněk k topu: vm_stat
- Co to tedy všechno znamená?
- Nevychází nám dal a má dáti?
- Kam se stránky ukládají?
- Změna odkládacího disku
- Změna odkládacího disku / fstab
- Poslední poznámka k fstab
- A jak to je se soubory?
- Co vlastně příkaz lsof vypisuje?
- Příkaz lsof a obsah sloupce NAME
- SIPS - Terminál není jen pro nadšence UNIXu
- Tak nám zabili NetInfo, paní Müllerová