Launchd
launchdは、デーモン、アプリケーション、プロセス、スクリプトの起動・停止・管理を行う、オープンソースのサービス管理フレームワークである。AppleのDave Zarzyckiによって作られ、Mac OS X Tiger (Mac OS X v10.4) で導入された。Apache Licenseのもとで公開されている。
launchdデーモンは基本的に以下を置き換えるものである:
init
rc
init.dスクリプト
rc.dスクリプト
SystemStarter (macOS)
inetd
xinetd
atd
crond
watchdogd
Appleはlaunchdを推進し、上記のすべてのサービスを廃止するとした。
これらのデーモンが扱っていたほとんどのプロセスが、Mac OS X v10.4でlaunchdに移行された。すべてのlaunch serviceを一つのプログラムに統合することで、launchdは遅いコンピュータでもブート時間を著しく短くする。
これらはスクリプトかフォアグランド項目かもしれないし、ユーザインタフェースを含めることもできる。これらのディレクトリはすべてmacOSのライブラリフォルダの中に置かれる。
launchdは、ブート時にすべてのデーモンを立ち上げるとはかぎらない点でSystemStarterと非常に異なっている。launchdの重要な考えかたであり、またxinetdと類似している点が、デーモンをオンデマンドで起動するということである。ブート時にジョブplistを参照したとき、launchdはそれらのジョブで要求されたすべてのポートを確保しlistenする。plistに"OnDemand"キーが指定されると、そのときデーモンは実際にはロードされず、launchdがポートをlistenして必要に応じてデーモンを起動したり終了したりする。デーモンがロードされたあと、launchdはその経過を追い、必要なあいだ確実に動作を継続させる。この方式はwatchdogdに似ており、プロセスがかってにforkしたりデーモン化したりしないようにするというwatchdogdの要件と共通している。もしプロセスがバックグラウンドに入ると、launchdは追跡を失い、プロセスの再起動を試みる。
その結果、Mac OS X Tigerはこれまでよりずっと速くブートする。