【レポート】

the inner universe of Leopard - 「rcの引退とlaunchdの強化」

7 表2: Tigerまでに利用できるlaunchdの設定項目(キーワード)一覧

    白山貴之  [2007/12/11]
    キーワード値の型説明
    DebugYESまたはNOYESの場合、syslogdに対してLOG_DEBUG相当の細かいログが送付される
    DisabledYESまたは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を介して起動される
    サブキー
    WaitYESまたはNOxinetdにあるwait項目の設定。YESの場合、1つサービスを起動するとその後のポートの監視などは起動したサービスに任せる(launchdはそのポートの監視を行わなくなる)。NOの場合サービスの起動後も監視を行い、ポートへの接続がある度にサービスを起動する
    InitGroupsYESまたはNOサービス起動時にinitgroup(3)を実行するか否か。YESの場合、指定ユーザの所属する全グループのアクセス権がサービスプロセスに付加される
    Label文字列サービスを識別するラベルを定義。一意である以外にラベルの命名に制約はない。Javaなどでもよく使われるドメイン名を逆順にドットでつなぐ方式が用いられる
    LowPriorityIOYESまたはNOYESの場合、サービスの行うファイルへのIO処理の優先順位を低く見積もる。バックエンドのサービスのIO処理でGUIアプリケーションの処理が待たされ、体感速度を落とすことを防ぐための処置となっている
    Nice数値この値がある場合、サービスの起動時にnice値として設定
    OnDemandYESまたはNOYESの場合、launchdがポートや時刻などを監視し、イベントが発生するとサービスを起動する。NOの場合launchdと同時にサービスを起動しておく
    Program文字列起動するサービスのargv[0]に相当するプログラム名を指定。無指定の場合、ProgramArgumentsの最初の値を使用
    ProgramArguments配列起動するサービスのパスおよび引数を指定
    QueueDirectories配列配列で指定されたパスの先がディレクトリで、内容が空でない場合および編集された(ディレクトリにファイルが追加された)場合にサービスが起動
    RootDirectory文字列サービスが用いるルートディレクトリのパスを指定。この値が指定されると、サービスは起動時にchroot(2)をかけられる。Daemonの場合のみ有効
    RunAtLoadYESまたはNO設定がlaunchdにロードされたときに、イベントの発生の有無などに関係なく1度起動するかどうか指定
    ServiceDescription文字列サービスに関する説明を記述
    ServiceIPCYESまたはNOlaunch(3)のAPI準拠のIPCを行うか否か
    Sockets特殊値として含まれるディクショナリ、またはディクショナリの配列で指定されたソケットに接続がきた場合、サービスを起動
    サブキー
    Bonjour特殊Bonjourによるサービス告知の指定。 YESの場合はSockServiceNameで指定されたサービスに関して告知する。 この項目が存在しない、またはNOの場合は告知しない。文字列、または文字列を集めた配列を値に指定した場合は、その文字列で示されるサービスをすべて告知
    MulticastGroup文字列SockTypeがdgramの際、どのマルチキャストグループに所属するか指定
    SockType文字列ソケットのタイプ。デフォルトはstreamで、dgramやseqpacketなども指定可能
    SockPassiveYESまたは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文字列カレントディレクトリを指定

    関連記事

    関連サイト

    関連したタグ

    新着記事

    特設サイトの情報

      人気記事

      一覧

      イチオシ記事

      新着記事

      特別企画

      マイナビニュースマガジン