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 |