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
Informace o procesech
26. září 2002, 00.00 | Minule jsme si orientačně vysvětlili co to je proces, a ukázali jsme si základy příkazu ps, pomocí kterého můžeme o procesech v systému získat podrobnější informace. Dnes se pustíme právě do těch informací: řekneme si, co systém o každém procesu ví, vysvětlíme si k čemu nám to může být dobré, a ukážeme si, jak si tyto informace od příkazu ps vyžádat.
Minule jsme si orientačně vysvětlili co to je proces, a ukázali jsme si základy příkazu ps, pomocí kterého můžeme o procesech v systému získat podrobnější informace. Dnes se pustíme právě do těch informací: řekneme si, co systém o každém procesu ví, vysvětlíme si k čemu nám to může být dobré, a ukážeme si, jak si tyto informace od příkazu ps vyžádat.
Atributy procesů
Každý proces má dlouhou řadu atributů: my jsme se již dříve zmínili o jeho jednoznačném identifikačním čísle pid, a o jeho vlastníkovi (uživatel, s jehož právy proces běží — obvykle, ale ne nutně, ten uživatel, který proces spustil). Atributů je oprav du spousta — klíčových slov, jejichž pomocí si můžeme od příkazu ps vyžádat výpis odpovídajících informací, je v současné versi systému přes osmdesát; my se samozřejmě blíž podíváme jen na ty nejdůležitější.
Seznam informací, jež má příkaz ps vypsat, můžeme určit pomocí přepínače -o, za nímž uvedeme seznam odpovídajících klíčových slov.
Identifikační číslo procesu a jeho rodiče, "pid" a "ppid"
Kromě vlastního identifikačního čísla ("pid") systém pro každý proces ukládá také pid procesu, který jej spustil ("ppid", "Parent PID").
60 ~> ps -a -o ucomm,pid,ppid
UCOMM PID PPID
zsh 348 346
telnet 355 348
zsh 352 346
OCSpeller.daemon 2854 352
zsh 20413 346
ps 20485 20413
61 ~> ps -p 346 -o ucomm,pid
UCOMM PID
Terminal 346
62 ~>
Příkaz a argumenty, jimiž byl proces spuštěn, "command" a "ucomm"
Na základě klíčového slova "command" zobrazí ps příkaz, kterým byl daný proces spuštěn, včetně všech argumentů:
32 ~> ps -p 2854 -o command
COMMAND
./OCSpeller.service/Contents/MacOS/OCSpeller.daemon
33 ~>
Ve výjimečných případech nemusí klíčové slovo "command" vypsat správný výsledek (protože příkaz, jímž byl proces spuštěn, je "v moci" samotného procesu, a ten jej může změnit). V takových případech máme k dispozici systémový údaj "ucomm"; ten vždy obsahuj e správné jméno, ovšem není zde kompletní příkaz a nejsou zde argumenty:
33 ~> ps -p 2854 -o ucomm
UCOMM
OCSpeller.daemon
34 ~>
Stav procesu, "state"
Stav procesu je zobrazen jako krátký textový řetězec:
34 ~> ps -p 2854 -o state
STAT
S+
35 ~>
První písmeno v tomto řetězci je určující pro základní informaci o stavu:
- R: normální běžící proces ("Runnable"). V praxi obvykle bude takových procesů menšina, protože většina procesů čeká na nějakou událost — např. na stisknutí klávesy či použití myši;
- D: proces čeká na dokončení nějaké krátkodobé operace (písmeno 'D' je použito proto, že daleko nejběžnějším typem takové operace je spolupráce s diskem);
- S: proces, který je pozastaven, protože na něco čeká ("Sleeping"). Za normálních okolností by v tomto stavu měla být většina procesů;
- I: proces, který bude čekat déle než dvacet sekund ("Idle");
- T: zastavený proces ("sTopped");
- Z: ukončený proces, který se z nějakého důvodu ještě nepodařilo zrušit ("Zombie").
Další znaky v řetězci podávají některé dodatečné informace; pro nás zatím nejsou zajímavé a můžeme je kllidně ignorovat.
Řadu dalších klíčových slov...
...si ukážeme příště.
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á