Appleblog.cz

Appleblog.cz

Jul 10 / 4:04am

iStat pro iPhone

Pro Mac OS X existuje několik aplikací pro monitoring systémových zdrojů. Dlouhou dobu jsem používal Activity Monitor, ale nakonec jsem se rozhodl pro iStat Menus (16USD). Aplikace je velice nenáročná na prostředky (Core2 Duo 2.4GHz cca 1% CPU a 2-3MB paměti), což jsou dokonce lepší hodnoty než systémový Activity Monitor, který si vezme cca 5% CPU a 20MB paměti. Unikátní je možnost nastavení indikátorů zdrojů - lze vybírat různé typy zobrazení, jejich pořadí, barvy atd.

 
Jako spokojený uživatel iStat Menu jsem se rozhodl vyzkoušet i další aplikaci z dílny Bjango a to iStat pro iPhone (1USD). Jedná se o klienta k monitorovacímu serveru iStat Server, který je ve verzi pro Mac OS X, Linux, FreeBSD a Solaris. Verze pro Mac OS X je běžná binární aplikace, verze pro ostatní *nixy je šířena ve formě zdrojových kódů.
 
V Linuxu stačí stáhnout zdrojové kódy istatd a mít nainstalovanou knihovnu libxml2-dev. Postup instalace je popsán v README souboru a je velice jednoduchý (pro uživatele Linuxu, kteří jsou obeznámení s instalací ze zdrojových kódů pomocí trojkombinace configure + make + make install). Daemon istatd komunikuje s iPhone klientem na portu 5109 (lze samozřejmě změnit). Pro autentizaci klienta je využíván pětimístný číselný kód.
 
Samotná aplikace pro iPhone zobrazuje po připojení k serveru tyto informace:
 
  • vytížení CPU formou grafu a aktuálního stavu (User/System/Nice/Idle)
  • využití RAM vč. velikosti diskové cache v paměti
  • velikost a využití swap oddílu
  • volné místo na discích
  • vytížení síťových adaptérů (aktuální up/down, graf a limitní hodnota)
  • uptime a load average
 
Kromě sledování zdrojů obsahuje aplikace ještě funkce ping a traceroute. Aplikace dokáže také zobrazit informace o systémových zdrojích samotného iPhone.
Obrazek
 Zobrazení informací o iPhone
 
Obrzek-2
Zobrazení informací o Linux serveru
Filed under  //  Unix   iPhone  
Mar 7 / 12:55am

Launchd - start Mac OS X

Mac OS X je unixový operační systém, start systému proto probíhá obdobně jako u ostatních unixů a klonů unixu. Od verze 10.4 začal Apple místo init a rc.d skriptů používat vlastní framework launchd. Zapomeňte na init, rc.d runlevely, crontab, chroot, xinetd i inetd, launchd se postará o vše potřebné. 

Po zavedení jádra systému je jako první proces s ID 1 spuštěn launchd. Z konfiguračních plist souborů umístěných v adresářích /System/Library/LaunchDaemons a /Library/LaunchDaemons zjistí informace o daemonech, které má spustit při startu (daemon je označení pro program, který běží dlouhodobě na pozadí a zajišťuje chod určité služby). Podle konfigurace daemona buď přímo spustí, nebo pro něj zaregistruje požadované sockety.

Obdobně zajišťuje launchd spouštění procesů při přihlášení uživatele. V tomto případě se konfigurační soubory nachází v adresářích /Library/LaunchAgents, /System/Library/LaunchAgents a ~/Library/LaunchAgents.

Formát konfiguračních souborů launchd umožňuje definovat i chování daemonů v rúzných situacích - lze nastavit spouštění v případě že existuje definovaný soubor, je připojen diskový svazek, umí spouštět procesy v časových intervalech. Daemon tedy vůbec nemusí být spuštěn přímo při startu systému, ale může "čekat v záloze" až na určitou akci a launchd se postará o jeho spuštění. Pomocí konfiguračního souboru lze definovat:

  • název daemonu a předávané parametry
  • pod jakým uživatelem a skupinou se má daemon spouštět
  • změnu kořenového adresáře (chroot)
  • akce na základě kterých se daemon spustí (např. vytvoření souboru)
  • čas a opakování spuštění (např. každý den v určitou hodinu)
  • limit paměti, CPU, počtu procesů daemona
  • konfigurace socketů pro spouštění v režimu super-daemona (obdoba xinetd/inetd)

Kompletní popis syntaxe plist souborů je uveden v man stránce launchd.plist(5). Ovládání launchd (ruční spuštění/vypnutí daemona, výpis jobů atd.) lze provádět pomocí utility launchctl.

Kromě spouštění daemonů pomocí Launchd umožňuje Mac OS X také spouštět aplikace pomocí StartupItems. V adresářích /System/Library/StartupItems a /Library/StartupItems mohou aplikace nebo uživatel vytvořit podadresáře se skripty pro spuštění aplikace (typicky tuto možnost používá např. MySQL). Každý adresář musí kromě spouštěcího skriptu obsahovat také konfigurační soubor StartupParameters.plist. Spouštění aplikací po přihlášení uživatele lze nastavit v System Preferences / Accounts / Login Items. Konfigurační soubor je v ~/Library/Preferences/loginwindow.plist. Jak je to s runlevely? Mac OS X je vůbec nepoužívá, o ukončení systému a odeslání SIGTERM signálu se stará opět launchd.

I když je launchd Open Source aplikace, nikdy se nerozšířil mimo Mac OS X (pouze v roce 2006 bylo zvažováno jeho zařazení do linuxové distribuce Ubuntu, kvůli použité licenci Apple Public Source z toho nakonec sešlo, ačkoli Apple ještě tentýž rok licenci změnil na Apache 2.0 licenci).

Více informací:

Man stránka launchd http://developer.apple.com/mac/library/documentation/Darwin/Reference/ManPage... 

Man stránka s popisem formátu plist konfiguračních souborů launchd http://developer.apple.com/mac/library/documentation/Darwin/Reference/ManPage....plist

Obecné informace o startu Mac OS X  http://developer.apple.com/mac/library/documentation/MacOSX/Conceptual/BPSyst...

Filed under  //  Mac OS X   Unix