利用例も含めた「表1: Leopardで追加された、launchdの新しい設定項目(キーワード)一覧」を、PDFデータとして用意しています。
キー 値の型 内容
AbandonProcessGroup trueまたはfalse launchdはプロセスが終了したときに、残留している同じプロセスグループのプロセスを全て強制終了させる。
このキーが定義され、値がtrueの場合、この強制終了処理が抑制される
EnableGlobbing trueまたはfalse ProgramArgumentsで指定されているコマンドおよびその引数について、シェルと同等のglobの展開を行うかを指定
ExitTimeOut 整数値 launchdがジョブを終了させるときに、SIGKILLを送るまでの待ち時間を指定する。無指定時は20秒後にSIGKILLが送付される。
0を指定するとSIGKILLを送付することがなくなり、無限に終了を待ち続ける
HopefullyExitsFirst trueまたはfalse この値がtrueの場合、シャットダウン時の終了処理時に、早期にジョブの終了処理が行われる
HopefullyExitsLast trueまたはfalse この値がtrueの場合、シャットダウン時の終了処理時に、ジョブの終了処理が他のジョブに比べ後の方で行われるようになる
KeepAlive trueまたはfalse、または以下のサブキーを持つディクショナリ このlaunch.plistで定義されるジョブが、1度起動したら継続的に実行されるのか、あるいはリクエストの度ごとに起動されるのかといった情報を定義する。
デフォルトではfalseが設定されており、リクエストごとに指定のプログラムが起動される。
trueの場合は、1度起動したらそれが終了するまで次のプログラムは実行されない。
true、falseではなくディクショナリが値として設定された場合、ディクショナリの中の条件のどれかが成立した時にプログラムが実行されていなければそれを起動する
サブキー
NetworkState trueまたはfalse 値がtrueの場合、ループバック以外のデバイスが有効で、IPv4かIPv6のIPアドレスが割り当てられている間に限り、プログラムの実行が行われる。
falseの場合は逆に、上位のネットワーク状態が成立していないときに限りジョブが実行される
OtherJobEnabled trueまたはfalseを値として持つディクショナリ 値となるディクショナリは、他のジョブのラベルをキーに、true/falseを値に持つ。
ディクショナリの中のtrueを値に持つジョブが有効である、あるいはfalseを引数によるジョブが無効である場合に、ジョブの実行が行われる
PathState trueまたはfalseを値として持つディクショナリ 値となるディクショナリは、パスをキーにtrue/falseを値に持つ。
ディクショナリの中のtrueを引数に持つパスが存在する、あるいはfalseを引数に持つパスが存在しない場合に、ジョブの実行が行われる。
これはロックファイルの検知などに有用な機能である
SuccessfulExit trueまたはfalse 値がtrueの場合、直前に終了した同ジョブのプロセスが正常終了(戻り値が0)の場合に限り、再起動を行う。
falseの場合は逆に、正常終了以外の場合にのみ再起動を実施する
LaunchOnlyOnce trueまたはfalse この値がtrueの場合、指定のジョブはただ1度だけしか実行処理が行われないことが保証される。
例えば、OSそのものを再起動しない限り安全に再実行できないジョブの場合は、このキーを定義し、trueをセットすべき
LimitLoadFromHosts 文字列の配列 値の配列で指定されたホスト"以外"でのみ実行されるように制限される
LimitLoadToHosts 文字列の配列 値の配列で指定されたホストでのみ実行されるように制限される
LimitLoadToSessionType 文字列の配列 文字列で指定されたセッションタイプでのみ実行される。
なお、現在定義されているセッションタイプは以下の通り
Aqua
LoginWindow
Background
StandardIO
System
MachServices ディクショナリ 値のディクショナリで指定された名前のMachIPCのサービスをbootstrapサブシステムに登録を行う。
値となるディクショナリはサービス名をキーに、true/falseもしくは以下のサブキーを持つディクショナリを値に持つ
サブキー
HideUntilCheckIn trueまたはfalse このキーが定義され、値がtrueの場合、対応するサービス名の予約だけが行われ、サービスがチェックインされるまでbootstrap_look_up()関数によるMachポートの取得が失敗するように設定される
ResetAtClose trueまたはfalse 値がfalseの場合、サービス名に対応するMachポートは1度登録されたものが再利用される。
値がtrueの場合、ポートの受信兼を持つタスクが終了した際、クライアント側にポートが失われた通知が送られる。その後、bootstrap_look_up()関数などを使ってクライアントが再び接続を行った場合、ポートが自動的に再生成される
StartOnMount trueまたはfalse この値がtrueの場合、何らかのファイルシステムのマウントが発生する度にジョブが実行される
ThrottleInterval 整数値 launchdでは短期的なプロセスと終了のループが発生してシステムに高負荷が発生するのを回避するため、デフォルトでは1度起動してから10秒間は起動したプロセスが終了しても再起動を行わない。
ThrottleIntervalはこのポリシーを調整し、10秒にかわり値に指定した秒間での再起動に書き換える
WaitForDebugger trueまたはfalse この値がtrueの場合、ジョブの実行時に、起動したプロセスにデバッガをアタッチできるよう、待ちを発生させる
変更/廃止されたキー
InitGroups trueまたはfalse trueの場合、ジョブの実行時にinitgroups(3)を使ったグループのアクセス権の初期化設定が行われる。なお、UserNameのキーが設定されていない場合、この処理は行われないので注意。
このキーはTigerでも存在したが、デフォルト値が変更されており、TIgerではfalseだったのがLeopardではtrueに変更されている
OnDemand trueまたはfalse より表現力の高い、KeepAliveキーワードで置き換えられた