initngにおける,サービスの設定方法には,大きく二種類ある.
これは,サービスを起動するためのコマンドの挙動に依存する.つまり,コマンドの挙動として,
- コマンドを実行すると,daemon として常駐するタイプ
- 例) /usr/sbin/sshd -D, /usr/sbin/nmbd -D,/usr/sbin/smbd -D
- コマンドを実行すると,プロセスをforkしてすぐに終了するタイプ
- 例) /usr/sbin/sshd, /usr/sbin/nmbd -F,/usr/sbin/smbd -F
の二つのタイプがあり,前者のタイプの場合,initng では以下のような設定ファイルを用意する.
daemon daemon/smbd { daemon = /usr/sbin/smbd daemon_args = -D }
このタイプでは,smbd が死んだ場合,initng は再度 smbd の起動を試みる.
一方,後者の場合は,以下のような設定ファイルを用意する.
service daemon/smbd { start = /usr/sbin/smbd -F }
このタイプでは,smdb が 終了コード0 で終了するまで initng はsmbd の起動を試みる.