A k čemu že je "ps" dobré? - MujMAC.cz - Apple, Mac OS X, Apple iPod

Odběr fotomagazínu

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:

Soutěž

Sponzorem soutěže je:

IDIF

 

Kde se koná výstava fotografií Luďka Vojtěchovského?

V dnešní soutěži hrajeme o:

Seriály

Více seriálů



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):

Tématické zařazení:

 » Rubriky  » Informace  

 » Rubriky  » Agregator  

 » Rubriky  » Software  

 

 

 

 

Přihlášení k mému účtu

Uživatelské jméno:

Heslo: