| キーワード | 値の型 | 説明 | |
|---|---|---|---|
| Debug | YESまたはNO | YESの場合、syslogdに対してLOG_DEBUG相当の細かいログが送付される | |
| Disabled | YESまたはNO | サービスを有効にするかどうか。YESにすると、設定を壊さずサービスを無効にできる | |
| EnvironmentVariables | ディクショナリ | サービス起動時にセットする環境変数をディクショナリの形式で指定 | |
| GroupName | 文字列 | サービスの実行グループを指定。Daemonの場合のみ有効 | |
| HardResourceLimits | ディクショナリ | サービスのソフトリミットおよびハードリミットを設定。値はディクショナリで、以下のサブキーを含む | |
| SoftResourceLimits | ディクショナリ | ||
| サブキー | |||
| Core | 数値 | サービスがクラッシュした時に生成されるcoreファイルのバイト数を数値で指定 | |
| CPU | 数値 | サービスの1プロセス当たりに使用できるCPU時間の上限を秒数で指定 | |
| Data | 数値 | サービスの1プロセス当たりに使用できるメモリ上のデータセグメントサイズをバイト数で指定 | |
| FileSize | 数値 | サービスが作成できるファイルサイズ上限をバイト数で指定 | |
| MemoryLock | 数値 | mlocck(2)でロックできるメモリサイズ上限をバイト数で指定 | |
| NumberOfFiles | 数値 | サービスが1プロセス当たりでオープンできるファイル数の上限を指定 | |
| NumberOfProcesses | 数値 | サービスの属するユーザIDで起動できるプロセス数の上限を指定 | |
| ResidentSetSize | 数値 | サービスが、1プロセス当たりで占有できる実メモリサイズの上限をバイト数で指定 | |
| Stack | 数値 | スタックサイズを指定。Machではスタックは自動伸張されないので、このサイズを超えるとSegmentation Faultとなる | |
| inetdCompatibility | ディクショナリ | inetd、xinetdと互換をとるための機能を設定。値はディクショナリで以下のサブキーを持つ。この項目自体が1つの設定になっており、この設定が存在する場合サービスは直接起動されずluanchproxyを介して起動される | |
| サブキー | |||
| Wait | YESまたはNO | xinetdにあるwait項目の設定。YESの場合、1つサービスを起動するとその後のポートの監視などは起動したサービスに任せる(launchdはそのポートの監視を行わなくなる)。NOの場合サービスの起動後も監視を行い、ポートへの接続がある度にサービスを起動する | |
| InitGroups | YESまたはNO | サービス起動時にinitgroup(3)を実行するか否か。YESの場合、指定ユーザの所属する全グループのアクセス権がサービスプロセスに付加される | |
| Label | 文字列 | サービスを識別するラベルを定義。一意である以外にラベルの命名に制約はない。Javaなどでもよく使われるドメイン名を逆順にドットでつなぐ方式が用いられる | |
| LowPriorityIO | YESまたはNO | YESの場合、サービスの行うファイルへのIO処理の優先順位を低く見積もる。バックエンドのサービスのIO処理でGUIアプリケーションの処理が待たされ、体感速度を落とすことを防ぐための処置となっている | |
| Nice | 数値 | この値がある場合、サービスの起動時にnice値として設定 | |
| OnDemand | YESまたはNO | YESの場合、launchdがポートや時刻などを監視し、イベントが発生するとサービスを起動する。NOの場合launchdと同時にサービスを起動しておく | |
| Program | 文字列 | 起動するサービスのargv[0]に相当するプログラム名を指定。無指定の場合、ProgramArgumentsの最初の値を使用 | |
| ProgramArguments | 配列 | 起動するサービスのパスおよび引数を指定 | |
| QueueDirectories | 配列 | 配列で指定されたパスの先がディレクトリで、内容が空でない場合および編集された(ディレクトリにファイルが追加された)場合にサービスが起動 | |
| RootDirectory | 文字列 | サービスが用いるルートディレクトリのパスを指定。この値が指定されると、サービスは起動時にchroot(2)をかけられる。Daemonの場合のみ有効 | |
| RunAtLoad | YESまたはNO | 設定がlaunchdにロードされたときに、イベントの発生の有無などに関係なく1度起動するかどうか指定 | |
| ServiceDescription | 文字列 | サービスに関する説明を記述 | |
| ServiceIPC | YESまたはNO | launch(3)のAPI準拠のIPCを行うか否か | |
| Sockets | 特殊 | 値として含まれるディクショナリ、またはディクショナリの配列で指定されたソケットに接続がきた場合、サービスを起動 | |
| サブキー | |||
| Bonjour | 特殊 | Bonjourによるサービス告知の指定。 YESの場合はSockServiceNameで指定されたサービスに関して告知する。 この項目が存在しない、またはNOの場合は告知しない。文字列、または文字列を集めた配列を値に指定した場合は、その文字列で示されるサービスをすべて告知 | |
| MulticastGroup | 文字列 | SockTypeがdgramの際、どのマルチキャストグループに所属するか指定 | |
| SockType | 文字列 | ソケットのタイプ。デフォルトはstreamで、dgramやseqpacketなども指定可能 | |
| SockPassive | YESまたはNO | 待ち受けを行うポートか、相手へ接続を行うポートかを指定。デフォルトはYES。これをわざわざ指定することはまずない | |
| SockNodeName | 文字列 | connect(2)またはbind(2)で用いられるノード名(TCP/IPの場合ホスト名など)を指定 | |
| SockServiceName | 文字列 | connect(2)ないしはbind(2)で用いられるサービス名(TCP/IPの場合/etc/servicesで示されるサービス名など)を指定 | |
| SockFamily | 文字列 | 通常のTCP/IPの場合はIPv4、IPv6を使う場合はIPv6を指定 | |
| SockProtocol | 文字列 | socket(2)に渡されるソケットのプロトコル名を指定(現在TCPしか認識しない) | |
| SockPathName | 文字列 | "SockFamilyに""Unix""を指定した場合、Unixドメインソケットで用いるパスを指定" | |
| StandardErrorPath | 文字列 | 値となる文字列で指定されたパスにあるファイルを開き、サービスの標準エラー出力として利用 | |
| StandardOutPath | 文字列 | 値となる文字列で指定されるパスの先のファイルを開き、サービスの標準出力として利用する | |
| StartCalendarInterval | ディクショナリ | 値で指定されたディクショナリの時間にサービスが起動する。ディクショナリには以下のサブキーのどれか、または全てが含まれる。含まれないサブキーはワイルドカードが指定されたとみなされる | |
| サブキー | |||
| Minute | 数値 | 「分」を指定 | |
| Hour | 数値 | 「時」を指定 | |
| Day | 数値 | 「日」を指定(数値) | |
| Weekday | 数値 | 「曜日」で指定(数値。0および7が日曜日) | |
| Month | 数値 | 「月」を指定 | |
| StartInterval | 数値 | 値で指定された秒数ごとにサービスが起動 | |
| TimeOut | 数値 | サービス呼び出し後起動するまでのタイムアウトを指定 | |
| Umask | 数値 | サービス起動時にセットするumaskの値を指定 | |
| UserName | 文字列 | サービスの実行ユーザを指定。Daemonの場合のみ有効 | |
| WatchPaths | 配列 | 配列で指定されたパスに存在するファイルを監視する。これらが編集された時にサービスが起動 | |
| WorkingDirectory | 文字列 | カレントディレクトリを指定 | |