Provided by: dpkg_1.17.5ubuntu5.8_amd64 

名前
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 バージョンと著作権に関する情報を表示し、終了する。
オプション
Matching options -p, --pidfile pid-file プロセスが pid-file を作成したかどうかをチェックする。このオプションを単体で使用した場合、以前のプ ロセスが pid-file を削除できないまま終了してしまった際に、意図しないプロセスが動作中であると判断さ れる場合があるため留意すること。 -x, --exec executable プロセスが指定した executable のインスタンスであるかどうかをチェックする。executable 引数は絶対パ ス名であること。インタプリタ型のスクリプトに対して指定した場合、executable はインタプリタ自体を指 してしまうため、期待する動作とならない点に留意すること。chroot 内で動作しているプロセスもマッチし てしまうため、これ以外の制約との組み合わせが必要となる点に注意すること。 -n, --name process-name プロセスが process-name であるかどうかをチェックする。process-name は通常プロセスのファイル名であ るが、プロセス自身によって変更することも可能である。大半のシステムにおいて、この情報はカーネル内の process comm name から取得されるため、比較的短い名称である必要がある (15 文字を超える名称は移植性 がないと判断される)点に留意すること。 -u, --user username|uid プロセスが username もしくは uid で指定されたユーザの所有となっているかをチェックする。このオプ ションを単体で用いた場合、指定されたユーザの所有するすべてのプロセスが合致するかをチェックする点に 留意すること。 Generic options -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 Chdir to path before starting the process. This is done after the chroot if the -r|--chroot option is set. When not specified, start-stop-daemon will chdir to the root directory before starting the process. -b, --background 通常、自身をデタッチできないプログラムで使用される。このオプションを指定した場合、 start-stop-daemon は自身を対象プロセスの起動前に fork し、以後バックグラウンドで実行させる。 警告: start-stop-daemon は いかなる理由によってプロセスの起動に失敗した場合であっても、その終了ステータ スをチェックできなくなる。このオプションは最終手段であり、自身の fork に意味のないプログラム や、fork を自身で行うためのコード追加が現実的でないプログラム以外での使用を意図していない。 -C, --no-close デーモンにバックグラウンドでの動作を強制する際に、ファイルディスクリプタのクローズを一切行わな い。プロセスの出力を参照する、ファイルディスクリプタの出力をプロセスの出力をロギングするためにリダ イレクトするといったデバッグ目的で使用される。--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>.