A jak to je se soubory? - 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:

Seriály

Více seriálů



Software

A jak to je se soubory?

6. března 2003, 00.00 | V poslední řadě dílů se bavíme o procesech a o "zdrojích", jež využívají: řekli jsme si něco o využití procesoru a paměti, a nyní se podíváme na soubory. Především se budeme věnovat příkazu lsof ("LiSt Open Files").

V poslední řadě dílů se bavíme o procesech a o "zdrojích", jež využívají: řekli jsme si něco o využití procesoru a paměti, a nyní se podíváme na soubory. Především se budeme věnovat příkazu lsof ("LiSt Open Files").

Nejen administrátor, ale dokonce i docela obyčejný uživatel systému nezřídka potřebuje zjistit, který z procesů udržuje otevřený který soubor: v Mac OS X bude asi nejčastějším případem situace, kdy nemůžeme vysunout výměnný disk, protože nějaký proces si ještě pořád udržuje otevřený některý z jeho souborů.

Příkaz lsof toho ovšem dokáže ještě mnohem víc: ve skutečnosti vlastně nezobrazuje otevřené soubory, ale komunikační kanály, ať již jde o komunikaci "s obsahem nějakého souboru na disku", tj. o klasický soubor, nebo "s adresáři a složkami", tj. o otevřenou složku, nebo o síťovou komunikaci mezi procesy (sockety apod.). Příkaz lsof tedy poslouží velmi dobře i při práci se sítí — celkem typický případ jeho využití je hledáme-li proces, který "zavinil" připojení k Internetu při využití tzv. dial-on-demand.

V několika dalších dílech si možnosti a argumenty příkazu lsof ukážeme podrobně; pro začátek se podíváme na jeho základní formát. Ten je velice jednoduchý:

 5 ~> lsof
 COMMAND    PID USER   FD   TYPE     DEVICE   SIZE/OFF     NODE NAME
 ATSServer  176  ocs  cwd   VDIR      14,12       4992        2 / (/dev/disk1s8)
 ...
 Window     180  ocs    2u  VCHR        3,2        0t0 36354436 /dev/null
 Window     180  ocs    3u  unix 0x0252a8d4        0t0          ->0x0226b564
 loginwind  375  ocs  cwd   VDIR      14,12       3200    82594 /Users/ocs
 ...
 loginwind  375  ocs    8w  VREG      14,12     219473   577920 /private/var/tmp/console.log
 ...
 telnet     499  ocs    3u  inet 0x02a0bcfc        0t0      TCP 193.85.69.5:49196->cisco
 ...
 Project    558  ocs    3u  inet 0x02a0a4cc        0t0      TCP *:8547 (LISTEN)
 ...
 lsof      4567  ocs    3r  VCHR        3,0        0t0 36354692 /dev/mem
 lsof      4567  ocs    4r  VCHR        3,1 0t47391968 36354564 /dev/kmem
 lsof      4567  ocs    5r  VREG      14,12    3728752   212984 /mach_kernel
 6 ~> 

Pole COMMAND, PID a USER jsou nám zřejmá už z povídání o procesech. TYPE je prostě typ otevřeného kanálu, FD o něm přináší bližší informace, DEVICE jsou konkrétní čísla zařízení, na kterém je soubor (je-li to soubor) uložen. Pokud je to možné, udává SIZE/OFF//T velikost souboru, a NODE jednoznačné číslo souboru. Konečně NAME je jednoduše čitelný popis kanálu.

Vidíme tak např. že Window (Server) používá "černou díru" /dev/null, že telnet a Project (Builder) mají po jednom otevřeném TCP kanálu, nebo že sám lsof zjišťuje své informace (mimo jiné) čtením paměti a paměti jádra ze zařízení /dev/mem a /dev/kmem, a zkoumáním jádra systému v /mach_kernel.

Obsah seriálu (více o seriálu):

Tématické zařazení:

 » Rubriky  » Informace  

 » Rubriky  » Agregator  

 » Rubriky  » Software  

 

 

 

Nejčtenější články
Nejlépe hodnocené články
Apple kurzy

 

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

Uživatelské jméno:

Heslo: