start-stop-daemon(8)

名前
start-stop-daemon - システムデーモンプログラムの起動、停止

書式
start-stop-daemon [option...] command

説明
start-stop-daemon はシステムレベルのプロセスの生成や停止を制御するために使用される。また、 適切なオプションを指定することで、実行中のプロセスを確認することができる。

注記: --pidfile を指定しない場合、start-stop-daemon は killall(1) と類似の動作を行う。start-stop-daemon は、(指定されていれば) プロセス名、uid、および gid にマッチするプロセスをプロセステーブルから検索する。--start が指定されている場合にマッチするプロセスがあれば、デーモンは起動されない。--stop が指定されていれば、マッチするプロセスすべてに TERM シグナル (もしくは --signal や --retry により指定されたシグナル) が送られる。そのため、--stop を指定されても動作しつづける必要があるような、長寿命の子プロセスを持つデーモンには、 pidfile を指定しなければならない。

コマンド

-S, --start [--] arguments
    指定されたプロセスの存在を確認する。該当するプロセスが存在する場合、 start-stop-daemon は何もせず、エラーステータス 1 を返して終了する (--oknodo が指定された場合は、0 を返す)。該当するプロセスが存在しない場合、 --exec により、もしくは --startas が指定された場合はこれにより指定される実行ファイルを起動する。コマンドライン上で -- 以降に与えられた任意の引数は起動されるプログラムにそのまま引き渡される。

-K, --stop
    指定されたプロセスの存在を確認する。該当するプロセスが存在する場合、 start-stop-daemon は --signal により指定されたシグナルをそのプロセスに送り、エラーステータス 0 を返して終了する。該当するプロセスが存在しない場合、 start-stop-daemon はエラーステータス 1 を返して終了する( --oknodo が指定された場合は 0 を返す)。--retry を指定した場合、start-stop-daemon はそのプロセスが終了したことを確認する。

-T, --status
    指定されたプロセスの存在を確認し、LSB の Init Script Action に基づいた終了ステータスを返却する。

-H, --help
    使用方法に関する情報を表示し、終了する。

-V, --version
    バージョンと著作権に関する情報を表示し、終了する。

マッチ用オプション

-p, --pidfile pid-file
    Check whether a process has created the file pid-file. Note: using this matching option alone might cause unintended processes to be acted on, if the old process terminated without being able to remove the pid-file.

-x, --exec executable
    Check for processes that are instances of this executable. The executable argument should be an absolute pathname. Note: this might not work as intended with interpreted scripts, as the executable will point to the interpreter. Take into account processes running from inside a chroot will also be matched, so other match restrictions might be needed.

-n, --name process-name
    Check for processes with the name process-name. The process-name is usually the process filename, but it could have been changed by the process itself. Note: on most systems this information is retrieved from the process comm name from the kernel, which tends to have a relatively short length limit (assuming more than 15 characters is non-portable).

-u, --user username|uid
    Check for processes owned by the user specified by username or uid. Note: using this matching option alone will cause all processes matching the user to be acted on.

オプション

-g, --group group|gid
    プロセスを開始する時点で、group や gid を変更する。

-s, --signal signal
    --stop と同時に指定することで、プロセスを停止するために送信するシグナルを指定する (デフォルトは TERM)。

-R, --retry timeout|schedule
    --stop と同時に指定することで、start-stop-daemon にプロセスの終了を確認させる。これにより、マッチした実行中のプロセスが全て終了するまで繰り返し確認が行われる。プロセスが終了しなければ、スケジュールにより指定されたアクションが実行される。 schedule のかわりに timeout が指定されている場合、 signal/timeout/KILL/timeout スケジュールが使われる。ここで signal は --signal で指定されるシグナルである。 スケジュール schedule は、スラッシュ (/) で区切られた少なくとも 2 つの要素からなるリストである。それぞれの要素は、-signal-number もしくは [-]signal-name の場合は送るべきシグナル、 timeout の場合はプロセスが終了するのを待つ秒数、 forever の場合は必要な限り、残りの schedule を繰り返し適用することを意味する。 schedule が終了し、forever が指定されていない場合、 start-stop-daemon はエラー状態 2 で終了する。schedule が指定されている場合、--signal で指定したシグナルは無視される。

-a, --startas pathname
    --start と同時に指定することで、pathname により指定されるプロセスを起動する。このオプションが指定されない場合、 --exec に与えられる引数がデフォルトになる。

-t, --test
    実行しようとする処理内容を出力し，それに伴い適切な返り値が設定されるが、実際の処理は行わない。

-o, --oknodo
    処理が何も行われない (又は、行なわれないと想定される) 場合、終了ステータス 1 のかわりに 0 を返す。

-q, --quiet
    情報メッセージを出力しない。エラーメッセージのみ出力する。

-c, --chuid username|uid[:group|gid]
    プロセスを起動する前に指定されたユーザ名やユーザ ID に変更する。 : に続いてグループ名またはグループ ID を与えることによりグループも指定できる。これは `chown' コマンドと同じ書式 (user:group) である。ユーザ名のみを指定した場合、そのユーザのプライマリグループの GID が用いられる。このオプション ( : 書式) を使用した時には、 --group オプションが指定されていない場合であっても、指定された場合と同様にプライマリグループと補助グループが設定されることを認識しておく必要がある。--group オプションは、(あるプロセスについて nobody のような汎用のユーザをグループに追加するといった) ユーザが通常メンバとなっていないグループを指定する場合にのみ使用する。

-r, --chroot root
    プロセスを起動する前に、root に対して chdir と chroot を実行する。pidfile は chroot 後に、書き出されることに注意すること。

-d, --chdir path
    プロセスを起動する前に、path に chdir する。-r|--chroot オプションを同時に指定した場合は、chroot の後に chdir する。そうでない場合、start-stop-daemon は、プロセスを起動する前に root ディレクトリに chdir する。

-b, --background
    通常、自身をデタッチできないプログラムで使用される。このオプションを指定した場合、 start-stop-daemon は自身を対象プロセスの起動前に fork し、以後バックグラウンドで実行させる。 警告: start-stop-daemon は いかなる理由によってプロセスの起動に失敗した場合であっても、その終了ステータスをチェックできなくなる。このオプションは最終手段であり、自身の fork に意味のないプログラムや、fork を自身で行うためのコード追加が現実的でないプログラム以外での使用を意図していない。

-C, --no-close
    Do not close any file descriptor when forcing the daemon into the background. Used for debugging purposes to see the process output, or to redirect file descriptors to log the process output. Only relevant when using --background.

-N, --nicelevel int
    プロセスを起動する前にプロセスのプライオリティを変更する。

-P, --procsched policy:priority
    プロセスを起動する前に、スケジューラのポリシーと優先順位を変更する。優先順位の指定は任意であり、: に続いて値を設定することで指定する。デフォルトの priority は 0 である。現在サポートされているポリシーの値は other, fifo, rr である。

-I, --iosched class:priority
    プロセスを起動する前に、IO スケジューラのクラスと優先順位を変更する。優先順位の指定は任意であり、: に続いて値を設定することで指定する。デフォルトの priority は 4 であるが、class が idle の場合の priority は常に 7 となる。現在サポートされている class の値は idle, best-effort, real-time である。

-k, --umask mask
    プロセスを起動する前にプロセスの umask を設定する。

-m, --make-pidfile
    自分自身で PID ファイルを作成しないプログラムを起動する際に使用する。このオプションにより、プロセスの起動直前に start-stop-daemon は --pidfile で参照されるファイルを作成し、pid の値を格納する。このファイルはプログラムの停止時に削除されないことに注意。注記: このオプションは動作しない場合がある。特に、プログラムの実行時にそのメインのプロセスから fork するようなプログラムでは正しく動作しない。このため、通常は --background オプションと併用する場合にのみ有用である。

-v, --verbose
    詳細な情報を出力する。

終了ステータス

0   指定されたアクションが実行された。--oknodo が指定された場合、何も行われなかった場合も意味する。これは、--start が指定されたがマッチするプロセスが実行されていた場合、--stop が指定されたがマッチするプロセスが存在しなかった場合に発生しうる。

1   --oknodo が指定されなかった場合に、何も行われなかった。

2   --stop および --retry が指定されたが、規定時間の最後まで到達したにも関わらず、プロセスがまだ実行されている。

3   その他のエラー。

--status コマンドを実行した際には、以下の戻り値が返される:

0   プログラムは実行中である。

1   プログラムは実行中でないが、pid ファイルが存在している。

3   プログラムは実行中でない。

4   プログラムの状況を確認できない。

例
既に実行中でない場合に、food デーモンを (プロセス名 food、実行ユーザ food 、PID 情報を food.pid に格納で) 起動する。

    start-stop-daemon --start --oknodo --user food --name food \
    	--pidfile /run/food.pid --startas /usr/sbin/food \
    	--chuid food -- --daemon

food に SIGTERM を送信し、停止するまで 5 秒間待機する:

    start-stop-daemon --stop --oknodo --user food --name food \
    	--pidfile /run/food.pid --retry 5

food 停止のためのカスタムスケジュールのデモ:

    start-stop-daemon --stop --oknodo --user food --name food \
    	--pidfile /run/food.pid --retry=TERM/30/KILL/5

翻訳者
高橋 基信 <monyo@monyo.com>. 喜瀬 浩 <kise@fuyuneko.jp>. 関戸 幸一 <sekido@mbox.kyoto-inet.or.jp>. 鍋谷 栄展 <nabe@debian.or.jp>. 倉澤 望 <nabetaro@debian.or.jp>. 石川 睦 <ishikawa@linux.or.jp>. 鵜飼 文敏 <ukai@debian.or.jp>. 中野 武雄 <nakano@apm.seikei.ac.jp>.

翻訳校正
Debian JP Documentation ML <debian-doc@debian.or.jp>.