Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen gezeigt.

Link zu dieser Vergleichsansicht

mac:launchd [2011/03/31 15:36]
127.0.0.1 external edit
mac:launchd [2012/09/11 16:05] (aktuell)
wikisysop
Zeile 4: Zeile 4:
  
  
-In Mac OS 10.4 (Tiger) stellte Apple ein neues System Startup Programm namens <fc #​008000>​launchd</​fc>​((http://​de.wikipedia.org/​wiki/​Launchd))((http://​developer.apple.com/​mac/​library/​documentation/​Darwin/​Reference/​ManPages/​man8/​launchd.8.html)) vor. Der launchd Daemon übernimmt viele Aufgaben von cron, xinetd, mach_init und init, was tradionelle UNIX Programme sind, die die System Initialisierung managen. Sie führen Startskripte aus, laden StartupItems und bereiten uA das System für den User Login vor. init war lange Zeit der erste Prozess auf einem UNIX System und dieser wurde auf den unterschiedlichen UNIX Derivaten unterschiedlich weiterentwickelt. In BSD Systemen führte init die Startskripte aus, startete getty((http://​en.wikipedia.org/​wiki/​Getty_%28Unix%29)) wann immer dies notwendig war und spürte verwaiste Prozesse auf. In Linux und System V Systemen (zB Solaris) wurden Runlevel von init gemanaget, Dienste (aka Daemons) bei Bedarf gestoppt und gestartet usw. Wie bei den anderen Weiterentwicklungen von init wie zB xinetd, ist die entscheidende Idee bei launchd die Daemons erst dann zu laden, wenn sie benötigt werden, was einen spürbaren Performancegewinn mit sich bringt, da dadurch nicht unnötig Systemresourcen verschwendet werden, für Dienste die nur sporadisch gebraucht werden. launchd ist der erste Prozess der vom Darwin Kernel ​getstartet ​wird (PID 1) und ist somit die Mutter aller Prozesse in Mac OS (Parent Prozess = PPID).+In Mac OS 10.4 (Tiger) stellte Apple ein neues System Startup Programm namens <fc #​008000>​launchd</​fc>​((http://​de.wikipedia.org/​wiki/​Launchd))((http://​developer.apple.com/​mac/​library/​documentation/​Darwin/​Reference/​ManPages/​man8/​launchd.8.html)) vor. Der launchd Daemon übernimmt viele Aufgaben von cron, xinetd, mach_init und init, was tradionelle UNIX Programme sind, die die System Initialisierung managen. Sie führen Startskripte aus, laden StartupItems und bereiten uA das System für den User Login vor. init war lange Zeit der erste Prozess auf einem UNIX System und dieser wurde auf den unterschiedlichen UNIX Derivaten unterschiedlich weiterentwickelt. In BSD Systemen führte init die Startskripte aus, startete getty((http://​en.wikipedia.org/​wiki/​Getty_%28Unix%29)) wann immer dies notwendig war und spürte verwaiste Prozesse auf. In Linux und System V Systemen (zB Solaris) wurden Runlevel von init gemanaget, Dienste (aka Daemons) bei Bedarf gestoppt und gestartet usw. Wie bei den anderen Weiterentwicklungen von init wie zB xinetd, ist die entscheidende Idee bei launchd die Daemons erst dann zu laden, wenn sie benötigt werden, was einen spürbaren Performancegewinn mit sich bringt, da dadurch nicht unnötig Systemresourcen verschwendet werden, für Dienste die nur sporadisch gebraucht werden. Das beinhaltet auch das Überwachen der Netzwerkschnittstelle nach eingehenden Anforderungen und dem anschließenden Starten des dazugehörigen Deamon. launchd ist der erste Prozess der vom Darwin Kernel ​gestartet ​wird (PID 1) und ist somit die Mutter aller Prozesse in Mac OS (Parent Prozess = PPID).
  
-<xterm2>$ <fc #​008000>​ps -eaf</​fc>​+<xterm>$ <fc #​008000>​ps -eaf</​fc>​
 <fc #​ffa500>​~~ snip ~~</​fc>​ <fc #​ffa500>​~~ snip ~~</​fc>​
- ​UID ​  ​PID ​ <fc #​800000>​**PPID**</​fc> ​  ​C ​    ​STIME TTY           TIME CMD + ​UID ​  ​PID ​ <fc #​800000>​**PPID**</​fc> ​  ​C ​     STIME   ​TTY           ​TIME ​    ​CMD 
- ​0 ​    ​<fc #​800000>​**1**</​fc> ​    ​0 ​  ​  ​0:00.89 ??         ​0:00.94 <fc #​800000>/​sbin/​launchd</​fc>​ + ​0 ​     <fc #​800000>​**1**</​fc> ​    ​0 ​       ​0:​00.89 ​ ??           ​0:​00.94 ​ <fc #​800000>/​sbin/​launchd</​fc>​ 
- ​0 ​   11     <​fc #​800000>​**1**</​fc> ​  ​  ​0:00.83 ??         ​0:01.02 /​usr/​libexec/​kextd + ​0 ​    ​11     <​fc #​800000>​**1**</​fc> ​       ​0:​00.83 ​ ??           ​0:​01.02 ​ /​usr/​libexec/​kextd 
- ​0 ​   12     ​1 ​  ​  ​0:00.31 ??         ​0:00.65 /​usr/​sbin/​DirectoryService+ ​0 ​    ​12     ​1 ​       ​0:​00.31 ​ ??           ​0:​00.65 ​ /​usr/​sbin/​DirectoryService
 <fc #​ffa500>​~~ snap ~~</​fc>​ <fc #​ffa500>​~~ snap ~~</​fc>​
-</xterm2>+</xterm>
  
 launchd hat zwei Hauptaufgaben:​ erstens das System zu starten (booten) und zweitens die Dienste zu laden und zu überwachen dh sicherzustellen,​ dass sie noch laufen und sich nicht ungeplant beendet haben. Die Start-Optionen bzw. Start-Parameter eines Dienstes werden in plist-basierten Konfigurationsdateien abgelegt und beim Systemstart von launchd ausgewertet. Dazu sucht launchd in <fc #​008000>/​etc/​rc</​fc>​ (sofern vorhanden) und den User bzw System <fc #​008000>​LaunchdAgent-</​fc>​ und <fc #​008000>​LaunchdDaemons</​fc>​-Verzeichnissen((http://​developer.apple.com/​mac/​library/​documentation/​Darwin/​Reference/​ManPages/​man5/​launchd.plist.5.html)). Wird zB in der plist-Datei über den Schlüssel <fc #​008000>​OnDemand</​fc>​ als Startart angegeben, wird der Daemon zu diesem Zeitpunkt tatsächlich noch nicht gestartet. Stattdessen reserviert launchd zB alle Netzwerkports die ein on-demand Netzwerk Service für sich beansprucht. Andererseits kann mit der Option <fc #​008000>​RunAtLoad</​fc>​ ein Dienst schon beim Systemstart geladen werden. launchd hat zwei Hauptaufgaben:​ erstens das System zu starten (booten) und zweitens die Dienste zu laden und zu überwachen dh sicherzustellen,​ dass sie noch laufen und sich nicht ungeplant beendet haben. Die Start-Optionen bzw. Start-Parameter eines Dienstes werden in plist-basierten Konfigurationsdateien abgelegt und beim Systemstart von launchd ausgewertet. Dazu sucht launchd in <fc #​008000>/​etc/​rc</​fc>​ (sofern vorhanden) und den User bzw System <fc #​008000>​LaunchdAgent-</​fc>​ und <fc #​008000>​LaunchdDaemons</​fc>​-Verzeichnissen((http://​developer.apple.com/​mac/​library/​documentation/​Darwin/​Reference/​ManPages/​man5/​launchd.plist.5.html)). Wird zB in der plist-Datei über den Schlüssel <fc #​008000>​OnDemand</​fc>​ als Startart angegeben, wird der Daemon zu diesem Zeitpunkt tatsächlich noch nicht gestartet. Stattdessen reserviert launchd zB alle Netzwerkports die ein on-demand Netzwerk Service für sich beansprucht. Andererseits kann mit der Option <fc #​008000>​RunAtLoad</​fc>​ ein Dienst schon beim Systemstart geladen werden.
mac/launchd.1301578599.txt.gz (14099 views) · Zuletzt geändert: 2011/04/16 20:47 (Externe Bearbeitung)
CC Attribution-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0