EN JA
DAEMON(8)
DAEMON(8) FreeBSD System Manager's Manual DAEMON(8)

名称

daemon制御端末からデタッチされた状態で実行する

書式

daemon [ -cfr][ -p child_pidfile][ -P supervisor_pidfile][ -u user] command arguments ...

解説

daemon ユーティリティは、制御端末からそれ自体をデタッチし、引数によって指定されたプログラムを実行します。特権は、指定されたユーザ (user) に下げられます。

オプションは、次の通りです:

-c
現在の作業ディレクトリをルート (“ /”) に変更します。
-f
標準入力、標準出力と標準エラーを /dev/null にリダイレクトします。
-p child_pidfile
作成されたプロセスの ID を pidfile(3) の機能を使用して、 child_pidfile に書き込みます。プログラムは、スポーン (spawn) された子プロセスの中で実行され、一方 daemon は、ロックされた child_pidfile を保存するために、終了するまで、ウェートし (待ち)、プロセスが終了した後にロックを削除します。 child_pidfile の所有者は、 -u オプションが使用されるかどうかにかかわらず daemon を実行するユーザです。
-P supervisor_pidfile
daemon プロセスの ID を pidfile(3) 機能性を使用して、 supervisor_pidfile に書き込みます。プログラムは、スポーン (spawn) された子プロセスで実行され、一方、 daemon は、ロックされた supervisor_pidfile を保持して、それが終了するまで、ウェートし (待ち) 、プロセスが終了した後に、それを削除します。 supervisor_pidfile の所有者は、 -u オプションが使用されるかどうかにかかわらず daemon を実行するユーザです。
-r
プログラムを監視して、それが終了しているなら、再開します。
-u user
プログラムを実行するユーザのログイン名。適切なスーパユーザの特権を必要とします。

-p, -P または -r オプションが指定されるなら、プログラムは、spawn された子プロセスの中で実行されます。 daemon は、ロックされた pid (複数の) ファイルを保持するために終了するまでウェートし (待ち)、プロセスが終了するか、プログラムを再開した後に、それを削除します。この場合に、モニタしている daemon がソフトウェアの終了シグナル (SIGTERM) を受け取るなら、 spawn されたプロセスに、それを転送します。通常、子プロセスを、終了させ、(複数の) pidfile を削除し、次に、終了します。

-P オプションは、子プロセスではなく、スーパバイザの ID を含んでいる、 supervisor_pidfile として -r オプションと組み合わせて役に立ちます。 daemon が子プロセスを再開させ、サービスを停止することを試みるとき、 -p オプションが、シグナルを発生するために子プロセスの ID を与える、 rc スクリプトの -r を使用するなら、これは、特に、重要です。

終了ステータス

daemon ユーティリティは、エラーが daemon(3) ライブラリルーチンによって返されるなら、1 で終了し、 child_pidfile または supervisor_pidfile が要求されるがが要求されるが、オープンできなかったなら 2 で終了し、プロセスが既に実行されている (pidfile が存在していて、ロックされている) なら 3 で終了し、そうでなければ 0 で終了します。

診断

コマンドを実行できなかったなら、エラーメッセージは、 -f フラグが指定されていないなら、標準エラーに表示されます。

歴史

daemon ユーティリティは、 FreeBSD 4.7 ではじめて登場しました。
September 13, 2013 FreeBSD