Initial Translation for rc.subr.8.
Submitted by: Watanabe Kazuhiro <CQG00620 at nifty ne jp> Reviewed by: Nobuyuki Koganemaru <n-kogane at syd odn ne jp>
This commit is contained in:
parent
eddc7bb959
commit
2a707c99e3
Notes:
svn2git
2020-12-08 03:00:23 +00:00
svn path=/head/; revision=25071
2 changed files with 784 additions and 0 deletions
|
|
@ -220,6 +220,7 @@ MAN8 = IPXrouted.8\
|
||||||
rbootd.8\
|
rbootd.8\
|
||||||
rc.8\
|
rc.8\
|
||||||
rc.sendmail.8\
|
rc.sendmail.8\
|
||||||
|
rc.subr.8\
|
||||||
rcorder.8\
|
rcorder.8\
|
||||||
reboot.8\
|
reboot.8\
|
||||||
renice.8\
|
renice.8\
|
||||||
|
|
|
||||||
783
ja_JP.eucJP/man/man8/rc.subr.8
Normal file
783
ja_JP.eucJP/man/man8/rc.subr.8
Normal file
|
|
@ -0,0 +1,783 @@
|
||||||
|
.\" %NetBSD: rc.subr.8,v 1.12 2004/01/06 00:52:24 lukem Exp %
|
||||||
|
.\"
|
||||||
|
.\" Copyright (c) 2002-2004 The NetBSD Foundation, Inc.
|
||||||
|
.\" All rights reserved.
|
||||||
|
.\"
|
||||||
|
.\" This code is derived from software contributed to The NetBSD Foundation
|
||||||
|
.\" by Luke Mewburn.
|
||||||
|
.\"
|
||||||
|
.\" Redistribution and use in source and binary forms, with or without
|
||||||
|
.\" modification, are permitted provided that the following conditions
|
||||||
|
.\" are met:
|
||||||
|
.\" 1. Redistributions of source code must retain the above copyright
|
||||||
|
.\" notice, this list of conditions and the following disclaimer.
|
||||||
|
.\" 2. Redistributions in binary form must reproduce the above copyright
|
||||||
|
.\" notice, this list of conditions and the following disclaimer in the
|
||||||
|
.\" documentation and/or other materials provided with the distribution.
|
||||||
|
.\" 3. All advertising materials mentioning features or use of this software
|
||||||
|
.\" must display the following acknowledgement:
|
||||||
|
.\" This product includes software developed by the NetBSD
|
||||||
|
.\" Foundation, Inc. and its contributors.
|
||||||
|
.\" 4. Neither the name of The NetBSD Foundation nor the names of its
|
||||||
|
.\" contributors may be used to endorse or promote products derived
|
||||||
|
.\" from this software without specific prior written permission.
|
||||||
|
.\"
|
||||||
|
.\" THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
|
||||||
|
.\" ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
|
||||||
|
.\" TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
|
||||||
|
.\" PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
|
||||||
|
.\" BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
||||||
|
.\" CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
||||||
|
.\" SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
||||||
|
.\" INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
||||||
|
.\" CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
||||||
|
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
||||||
|
.\" POSSIBILITY OF SUCH DAMAGE.
|
||||||
|
.\"
|
||||||
|
.\" %FreeBSD: src/share/man/man8/rc.subr.8,v 1.6 2004/07/09 10:08:03 ru Exp %
|
||||||
|
.\"
|
||||||
|
.\" $FreeBSD$
|
||||||
|
.Dd January 6, 2004
|
||||||
|
.Dt RC.SUBR 8
|
||||||
|
.Os
|
||||||
|
.Sh 名称
|
||||||
|
.Nm rc.subr
|
||||||
|
.Nd システムシェルスクリプトで使用する関数群
|
||||||
|
.Sh 書式
|
||||||
|
.Bl -item -compact
|
||||||
|
.It
|
||||||
|
.Ic .\& Pa /etc/rc.subr
|
||||||
|
.Pp
|
||||||
|
.It
|
||||||
|
.Ic backup_file Ar action Ar file Ar current Ar backup
|
||||||
|
.It
|
||||||
|
.Ic checkyesno Ar var
|
||||||
|
.It
|
||||||
|
.Ic check_pidfile Ar pidfile Ar procname Op Ar interpreter
|
||||||
|
.It
|
||||||
|
.Ic check_process Ar procname Op Ar interpreter
|
||||||
|
.It
|
||||||
|
.Ic debug Ar message
|
||||||
|
.It
|
||||||
|
.Ic err Ar exitval Ar message
|
||||||
|
.It
|
||||||
|
.Ic force_depend Ar name
|
||||||
|
.It
|
||||||
|
.Ic info Ar message
|
||||||
|
.It
|
||||||
|
.Ic load_rc_config Ar command
|
||||||
|
.It
|
||||||
|
.Ic mount_critical_filesystems Ar type
|
||||||
|
.It
|
||||||
|
.Ic rc_usage Ar command ...
|
||||||
|
.It
|
||||||
|
.Ic reverse_list Ar item ...
|
||||||
|
.It
|
||||||
|
.Ic run_rc_command Ar argument
|
||||||
|
.It
|
||||||
|
.Ic run_rc_script Ar file Ar argument
|
||||||
|
.It
|
||||||
|
.Ic set_rcvar Op Ar base
|
||||||
|
.It
|
||||||
|
.Ic wait_for_pids Op Ar pid ...
|
||||||
|
.It
|
||||||
|
.Ic warn Ar message
|
||||||
|
.El
|
||||||
|
.Sh 解説
|
||||||
|
.Nm
|
||||||
|
スクリプトは、
|
||||||
|
.Xr rc 8
|
||||||
|
のような様々なスクリプトから利用される、一般的に使用する
|
||||||
|
シェルスクリプト関数や変数定義を含んでいます。
|
||||||
|
また ports が要求する
|
||||||
|
.Pa /usr/local/etc/rc.d
|
||||||
|
内のスクリプトも、やがては本スクリプトを使用するように
|
||||||
|
書き換えられるでしょう。
|
||||||
|
.Pp
|
||||||
|
.Nm
|
||||||
|
の関数群は、大部分が
|
||||||
|
.Nx
|
||||||
|
から取り込まれたものであり、またそれらは二つのプロジェクト間で同期できるように
|
||||||
|
考えられています。
|
||||||
|
そのことを考慮した、役に立ついくつかの変数定義があります:
|
||||||
|
.Bl -tag -width 4n
|
||||||
|
.It Va OSTYPE
|
||||||
|
この値は
|
||||||
|
.Qq Li FreeBSD
|
||||||
|
か
|
||||||
|
.Qq Li NetBSD
|
||||||
|
のどちらかで、実行されている OS によります。
|
||||||
|
.It Va SYSCTL
|
||||||
|
.Xr sysctl 8
|
||||||
|
コマンドのパス。
|
||||||
|
.It Va SYSCTL_N
|
||||||
|
.Ar name Ns = Ns Ar value
|
||||||
|
ペアとしてではなく、
|
||||||
|
.Xr sysctl 8
|
||||||
|
変数のみを表示する際の、パスと引数のリスト。
|
||||||
|
.It Va SYSCTL_W
|
||||||
|
.Xr sysctl 8
|
||||||
|
変数を設定または変更する際の、パスと引数。
|
||||||
|
.El
|
||||||
|
.Pp
|
||||||
|
.Nm
|
||||||
|
関数群には、カレントシェルで
|
||||||
|
.Pa /etc/rc.subr
|
||||||
|
を読み込む事でアクセスできます。
|
||||||
|
.Pp
|
||||||
|
以下のシェル関数が利用可能です:
|
||||||
|
.Bl -tag -width 4n
|
||||||
|
.It Ic backup_file Ar action file current backup
|
||||||
|
.Ar file
|
||||||
|
のバックアップコピーを
|
||||||
|
.Ar current
|
||||||
|
として作成します。
|
||||||
|
.Xr rc.conf 5
|
||||||
|
変数の
|
||||||
|
.Va backup_uses_rcs
|
||||||
|
が
|
||||||
|
.Dq Li YES
|
||||||
|
である場合、以前のバージョンの
|
||||||
|
.Ar current
|
||||||
|
は
|
||||||
|
.Xr rcs 1
|
||||||
|
を使ってアーカイブします。
|
||||||
|
そうでなければ、以前のバージョンの
|
||||||
|
.Ar current
|
||||||
|
は
|
||||||
|
.Ar backup
|
||||||
|
として保存します。
|
||||||
|
.Pp
|
||||||
|
引数
|
||||||
|
.Ar action
|
||||||
|
は次のうちのどれかです:
|
||||||
|
.Bl -tag -width ".Cm remove"
|
||||||
|
.It Cm add
|
||||||
|
.Ar file
|
||||||
|
はこのバックアップ機構によりすぐにバックアップされるか、もしくは再投入されます。
|
||||||
|
.Ar current
|
||||||
|
が作成され、必要なら、
|
||||||
|
.Xr rcs 1
|
||||||
|
ファイルが同様に作成されます。
|
||||||
|
.It Cm update
|
||||||
|
.Ar file
|
||||||
|
は変更されており、バックアップを取る必要があります。
|
||||||
|
.Ar current
|
||||||
|
が存在するなら、
|
||||||
|
.Ar backup
|
||||||
|
にコピーされるか、もしくは
|
||||||
|
.Xr rcs 1
|
||||||
|
にチェックされます (リポジトリファイルが古い場合)。
|
||||||
|
その後に、
|
||||||
|
.Ar file
|
||||||
|
が
|
||||||
|
.Ar current
|
||||||
|
にコピーされます。
|
||||||
|
.It Cm remove
|
||||||
|
.Ar file
|
||||||
|
はこのバックアップ機構で管理される事はもうありません。
|
||||||
|
.Xr rcs 1
|
||||||
|
が使われている場合は、空のファイルがチェックインされて
|
||||||
|
.Ar current
|
||||||
|
は削除されます。
|
||||||
|
そうでなければ、
|
||||||
|
.Ar current
|
||||||
|
は
|
||||||
|
.Ar backup
|
||||||
|
に移動します。
|
||||||
|
.El
|
||||||
|
.It Ic checkyesno Ar var
|
||||||
|
.Ar var
|
||||||
|
の値が
|
||||||
|
.Dq Li YES ,
|
||||||
|
.Dq Li TRUE ,
|
||||||
|
.Dq Li ON ,
|
||||||
|
.Ql 1
|
||||||
|
ならば、 0 を返します。
|
||||||
|
.Ar var
|
||||||
|
の値が
|
||||||
|
.Dq Li NO ,
|
||||||
|
.Dq Li FALSE ,
|
||||||
|
.Dq Li OFF ,
|
||||||
|
.Ql 0
|
||||||
|
ならば、 1 を返します。
|
||||||
|
これら以外の値ならば、
|
||||||
|
.Ar var
|
||||||
|
が正しく設定されていないという警告を出します。
|
||||||
|
値は大文字 / 小文字を問いません。
|
||||||
|
.It Ic check_pidfile Ar pidfile procname Op Ar interpreter
|
||||||
|
.Ar pidfile
|
||||||
|
の最初の行の最初の語を解析して PID とし、この PID を持つプロセスが
|
||||||
|
実行されていて、最初の引数が
|
||||||
|
.Ar procname
|
||||||
|
とマッチすることを確かめます。
|
||||||
|
成功すればマッチした PID を出力し、そうでなければ何もしません。
|
||||||
|
.Ar interpreter
|
||||||
|
が与えられれば、
|
||||||
|
.Ar procname
|
||||||
|
の最初の行を解析して、
|
||||||
|
.Pp
|
||||||
|
.Dl "#! interpreter [...]"
|
||||||
|
.Pp
|
||||||
|
という形式であることを確かめます。
|
||||||
|
そして
|
||||||
|
.Ar interpreter
|
||||||
|
とオプション引数に
|
||||||
|
.Ar procname
|
||||||
|
を追加したものを、検索するプロセス文字列として使用します。
|
||||||
|
.It Ic check_process Ar procname Op Ar interpreter
|
||||||
|
最初の引数が
|
||||||
|
.Ar procname
|
||||||
|
にマッチする、実行されている任意のプロセスの PID を出力します。
|
||||||
|
.Ar interpreter
|
||||||
|
は
|
||||||
|
.Ic check_pidfile
|
||||||
|
と同様に扱われます。
|
||||||
|
.It Ic debug Ar message
|
||||||
|
デバッグメッセージを
|
||||||
|
.Va stderr
|
||||||
|
に表示し、
|
||||||
|
.Xr logger 1
|
||||||
|
を使用してシステムログに記録をして、呼び出し元に戻ります。
|
||||||
|
このエラーメッセージは、スクリプト名
|
||||||
|
.Va ( $0
|
||||||
|
より),
|
||||||
|
.Dq Li ": DEBUG: " ,
|
||||||
|
及びこれに続く
|
||||||
|
.Ar message
|
||||||
|
で構成されます。
|
||||||
|
この関数はスクリプトのデバッグの手助けとして、開発者が使用することを
|
||||||
|
目的にしています。
|
||||||
|
これは
|
||||||
|
.Xr rc.conf 5
|
||||||
|
変数の
|
||||||
|
.Va rc_debug
|
||||||
|
により、有効あるいは無効にすることができます。
|
||||||
|
.It Ic err Ar exitval message
|
||||||
|
エラーメッセージを
|
||||||
|
.Va stderr
|
||||||
|
に表示し、
|
||||||
|
.Xr logger 1
|
||||||
|
を使用してシステムログに記録をして、終了値
|
||||||
|
.Ar exitval
|
||||||
|
で
|
||||||
|
.Ic 終了します。
|
||||||
|
このエラーメッセージは、スクリプト名
|
||||||
|
.Va ( $0
|
||||||
|
より),
|
||||||
|
.Dq Li ": ERROR: " ,
|
||||||
|
及びこれに続く
|
||||||
|
.Ar message
|
||||||
|
で構成されます。
|
||||||
|
.It Ic force_depend name
|
||||||
|
勧告メッセージを出力し、
|
||||||
|
.Ar name
|
||||||
|
サービスを強制的に起動します。
|
||||||
|
引数
|
||||||
|
.Ar name
|
||||||
|
は、通常
|
||||||
|
.Pa /etc/rc.d/name
|
||||||
|
といったスクリプトのパスの
|
||||||
|
.Xr basename 1
|
||||||
|
要素です。
|
||||||
|
スクリプトが何らかの原因で失敗した場合、警告を出力して戻り値 1 を返します。
|
||||||
|
成功した場合は、戻り値 0 を返します。
|
||||||
|
.It Ic info Ar message
|
||||||
|
情報メッセージを
|
||||||
|
.Va stdout
|
||||||
|
に表示し、
|
||||||
|
.Xr logger 1
|
||||||
|
を使用してシステムログに記録をします。
|
||||||
|
このメッセージは、スクリプト名
|
||||||
|
.Va ( $0
|
||||||
|
より),
|
||||||
|
.Dq Li ": INFO: " ,
|
||||||
|
及びこれに続く
|
||||||
|
.Ar message
|
||||||
|
で構成されます。
|
||||||
|
この情報出力の表示は
|
||||||
|
.Xr rc.conf 5
|
||||||
|
変数の
|
||||||
|
.Va rc_info
|
||||||
|
により、有効あるいは無効にすることができます。
|
||||||
|
.It Ic load_rc_config Ar command
|
||||||
|
.Ar command
|
||||||
|
の設定ファイルを読み込みます。
|
||||||
|
最初に、
|
||||||
|
.Pa /etc/rc.conf
|
||||||
|
がまだ読み込まれていなければ、読み込みます。
|
||||||
|
その後に、ファイル
|
||||||
|
.Pa /etc/rc.conf.d/ Ns Ar command
|
||||||
|
が存在すれば、これを読み込みます。
|
||||||
|
後者は呼び出しスクリプト側で指定した
|
||||||
|
.Ic run_rc_command
|
||||||
|
引数を上書きする変数定義を含めることもできます。
|
||||||
|
これは管理者が任意の
|
||||||
|
.Xr rc.d 8
|
||||||
|
スクリプトを編集すること無く、その動作を上書きできる簡易な仕組みを提供します。
|
||||||
|
.It Ic mount_critical_filesystems Ar type
|
||||||
|
.Xr rc.conf 5
|
||||||
|
変数の
|
||||||
|
.Va critical_filesystems_ Ns Ar type
|
||||||
|
で定義された重要なファイルシステムの一覧のうち、この時点でマウントされて
|
||||||
|
いないものがあれば、マウントします。
|
||||||
|
.It Ic rc_usage Ar command ...
|
||||||
|
.Va $0
|
||||||
|
の使用方法を、有効な引数の一覧として、
|
||||||
|
.Ar command
|
||||||
|
をプレフィックスの
|
||||||
|
.Sm off
|
||||||
|
.Dq Bq Li fast | force | one
|
||||||
|
.Sm on
|
||||||
|
と共に出力します。
|
||||||
|
.It Ic reverse_list Ar item ...
|
||||||
|
.Ar item
|
||||||
|
のリストを逆順で出力します。
|
||||||
|
.It Ic run_rc_command Ar argument
|
||||||
|
各種のシェル変数の設定に基づいて、現在の
|
||||||
|
.Xr rc.d 8
|
||||||
|
スクリプトの、
|
||||||
|
.Ar argument
|
||||||
|
処理を実行します。
|
||||||
|
.Ic run_rc_command
|
||||||
|
はきわめて柔軟性があり、完全に機能する
|
||||||
|
.Xr rc.d 8
|
||||||
|
スクリプトを小量のシェルコードで記述することができます。
|
||||||
|
.Pp
|
||||||
|
.Ar argument
|
||||||
|
はサポートされているコマンドから検索され、それは以下のうちのどれかです:
|
||||||
|
.Bl -tag -width ".Cm restart" -offset indent
|
||||||
|
.It Cm start
|
||||||
|
サービスを起動します。
|
||||||
|
本コマンドは、
|
||||||
|
.Xr rc.conf 5
|
||||||
|
の指定によりサービスを起動するべきかをチェックします。
|
||||||
|
またサービスが既に実行中で、そのために起動を拒否するかどうかもチェックします。
|
||||||
|
標準の
|
||||||
|
.Fx
|
||||||
|
スクリプトにおいて、システムが直接マルチユーザモードで起動する場合は、
|
||||||
|
起動プロセスの高速化のために、後者のチェックは行われません。
|
||||||
|
.It Cm stop
|
||||||
|
.Xr rc.conf 5
|
||||||
|
の指定によりサービスが起動していれば、サービスを停止します。
|
||||||
|
本コマンドはサービスが実行中かどうかをチェックし、そうでない場合、
|
||||||
|
その旨を表示します。
|
||||||
|
.It Cm restart
|
||||||
|
.Cm stop
|
||||||
|
の後に、
|
||||||
|
.Cm start
|
||||||
|
を実行します。
|
||||||
|
デフォルトでは、 (もし実行中なら) プログラムのプロセス ID を表示します。
|
||||||
|
.It Cm rcvar
|
||||||
|
サービスの起動を制御するのに使用する
|
||||||
|
.Xr rc.conf 5
|
||||||
|
変数を (もしあれば) 表示します。
|
||||||
|
.El
|
||||||
|
.Pp
|
||||||
|
.Va pidfile
|
||||||
|
または
|
||||||
|
.Va procname
|
||||||
|
が設定されていれば、以下もサポートされています:
|
||||||
|
.Bl -tag -width ".Cm restart" -offset indent
|
||||||
|
.It Cm poll
|
||||||
|
コマンドが終了するのを待ちます。
|
||||||
|
.It Cm status
|
||||||
|
プロセスのステータスを表示します。
|
||||||
|
.El
|
||||||
|
.Pp
|
||||||
|
他にサポートされているコマンドは、オプション変数の
|
||||||
|
.Va extra_commands
|
||||||
|
に列挙されています。
|
||||||
|
.Pp
|
||||||
|
.Ar argument
|
||||||
|
はそれ自身の動作を変更する、以下のプレフィックスをつけることができます:
|
||||||
|
.Bl -tag -width ".Li force" -offset indent
|
||||||
|
.It Li fast
|
||||||
|
実行中のプロセスの有無をチェックしません。
|
||||||
|
.Va rc_fast Ns = Ns Li YES
|
||||||
|
をセットします。
|
||||||
|
.It Li force
|
||||||
|
.Va rcvar
|
||||||
|
が
|
||||||
|
.Dq Li YES
|
||||||
|
にセットされているかどうかをチェックしません。
|
||||||
|
.Va rc_force Ns = Ns Li YES
|
||||||
|
をセットします。
|
||||||
|
.Ar argument Ns Va _precmd
|
||||||
|
が非 0 を返しても無視します。
|
||||||
|
.Va required_*
|
||||||
|
テストのどれかが失敗しても無視します。
|
||||||
|
また終了ステータスとして常に 0 を返します。
|
||||||
|
.It Li one
|
||||||
|
.Va rcvar
|
||||||
|
が
|
||||||
|
.Dq Li YES
|
||||||
|
にセットされているかどうかをチェックしません。
|
||||||
|
しかし他の全ての前提チェックは行います。
|
||||||
|
.El
|
||||||
|
.Pp
|
||||||
|
.Ic run_rc_command
|
||||||
|
はその動作を制御するために、以下のシェル変数を使用します。
|
||||||
|
特に明記が無いものは、オプションです。
|
||||||
|
.Bl -tag -width ".Va procname" -offset indent
|
||||||
|
.It Va name
|
||||||
|
このスクリプトの名称。
|
||||||
|
これはオプションではありません。
|
||||||
|
.It Va rcvar
|
||||||
|
.Va rcvar
|
||||||
|
の値は
|
||||||
|
.Ic checkyesno
|
||||||
|
によりチェックされ、この処理を実行するかどうかを判定します。
|
||||||
|
.It Va command
|
||||||
|
コマンドのフルパス。
|
||||||
|
サポートされる各キーワードに対して
|
||||||
|
.Ar argument Ns Va _cmd
|
||||||
|
が設定されている場合は、必要ありません。
|
||||||
|
.It Va command_args
|
||||||
|
オプション引数、及び / または
|
||||||
|
.Va command
|
||||||
|
に対するシェルディレクティブ。
|
||||||
|
.It Va command_interpreter
|
||||||
|
.Va command
|
||||||
|
は
|
||||||
|
.Pp
|
||||||
|
.Dl "#! command_interpreter [...]"
|
||||||
|
という形式で起動されるので、
|
||||||
|
.Xr ps 1
|
||||||
|
コマンドの出力は
|
||||||
|
.Pp
|
||||||
|
.Dl "command_interpreter [...] command"
|
||||||
|
.Pp
|
||||||
|
のようになります。
|
||||||
|
ですので、この文字列は実行中のコマンドの PID を検索するのに、
|
||||||
|
.Va command
|
||||||
|
の代わりに使用します。
|
||||||
|
.It Va extra_commands
|
||||||
|
特別にサポートするコマンド / キーワード / 引数。
|
||||||
|
.It Va pidfile
|
||||||
|
PID ファイルのパス。
|
||||||
|
実行中のコマンドの PID を特定するのに使用します。
|
||||||
|
.Va pidfile
|
||||||
|
が設定された場合、 PID を検索するのには
|
||||||
|
.Pp
|
||||||
|
.Dl "check_pidfile $pidfile $procname"
|
||||||
|
.Pp
|
||||||
|
を使用します。
|
||||||
|
そうでなければ、
|
||||||
|
.Va command
|
||||||
|
が設定されている場合、 PID を検索するのには
|
||||||
|
.Pp
|
||||||
|
.Dl "check_process $procname"
|
||||||
|
.Pp
|
||||||
|
を使用します。
|
||||||
|
.It Va procname
|
||||||
|
チェックする時のプロセス名。
|
||||||
|
デフォルトは
|
||||||
|
.Va command
|
||||||
|
の値です。
|
||||||
|
.It Va required_dirs
|
||||||
|
デフォルトの start 処理を実行する前に、これに列挙されたディレクトリの
|
||||||
|
存在をチェックします。
|
||||||
|
.It Va required_files
|
||||||
|
デフォルトの start 処理を実行する前に、これに列挙されたファイルが
|
||||||
|
読み取り可能かをチェックします。
|
||||||
|
.It Va required_vars
|
||||||
|
デフォルトの start 処理を実行する前に、これに列挙された変数に対して
|
||||||
|
.Ic checkyesno
|
||||||
|
を適用します。
|
||||||
|
.It Va ${name}_chdir
|
||||||
|
.Va ${name}_chroot
|
||||||
|
が提供されない場合、
|
||||||
|
.Va command
|
||||||
|
を実行する前に
|
||||||
|
.Ic cd
|
||||||
|
するディレクトリ。
|
||||||
|
.It Va ${name}_chroot
|
||||||
|
.Va command
|
||||||
|
を実行する前に
|
||||||
|
.Xr chroot 8
|
||||||
|
するディレクトリ。
|
||||||
|
.Pa /usr
|
||||||
|
がマウントされた後にのみサポートされています。
|
||||||
|
.It Va ${name}_flags
|
||||||
|
.Va command
|
||||||
|
の呼び出し時に適用する引数。
|
||||||
|
これは通常
|
||||||
|
.Xr rc.conf 5
|
||||||
|
で設定され、
|
||||||
|
.Xr rc.d 8
|
||||||
|
スクリプトで設定されるものではありません。
|
||||||
|
これを上書きするのに、環境変数の
|
||||||
|
.Sq Ev flags
|
||||||
|
を使うことができます。
|
||||||
|
.It Va ${name}_nice
|
||||||
|
.Va command
|
||||||
|
を実行する際の
|
||||||
|
.Xr nice 1
|
||||||
|
レベル。
|
||||||
|
.Pa /usr
|
||||||
|
がマウントされた後にのみサポートされています。
|
||||||
|
.It Va ${name}_user
|
||||||
|
.Va command
|
||||||
|
を実行する際のユーザ。
|
||||||
|
.Va ${name}_chroot
|
||||||
|
が設定されている場合は
|
||||||
|
.Xr chroot 8
|
||||||
|
を使用し、そうでなければ
|
||||||
|
.Xr su 1
|
||||||
|
を使用します。
|
||||||
|
.Pa /usr
|
||||||
|
がマウントされた後にのみサポートされています。
|
||||||
|
.It Va ${name}_group
|
||||||
|
chroot 後に
|
||||||
|
.Va command
|
||||||
|
を実行する際のグループ。
|
||||||
|
.It Va ${name}_groups
|
||||||
|
コンマで区切られたリストで、 chroot 後に
|
||||||
|
.Va command
|
||||||
|
を実行する際の補助グループ。
|
||||||
|
.It Ar argument Ns Va _cmd
|
||||||
|
.Ar argument
|
||||||
|
のデフォルト処理を上書きするシェルコマンド。
|
||||||
|
.It Ar argument Ns Va _precmd
|
||||||
|
.Ar argument Ns Va _cmd
|
||||||
|
を実行する直前、もしくは
|
||||||
|
.Ar argument
|
||||||
|
のデフォルト処理の直前に実行するシェルコマンド。
|
||||||
|
もしこれが非 0 の終了コードを返した場合、メイン処理は行われません。
|
||||||
|
デフォルト処理が実行されるならば、このチェックは
|
||||||
|
.Va required_*
|
||||||
|
チェックとプロセスの (非) 存在チェックの後に行われます。
|
||||||
|
.It Ar argument Ns Va _postcmd
|
||||||
|
実行された
|
||||||
|
.Ar argument Ns Va _cmd
|
||||||
|
、もしくは
|
||||||
|
.Ar argument
|
||||||
|
のデフォルト処理が終了コード 0 を返した時に実行されるシェルコマンド。
|
||||||
|
.It Va sig_stop
|
||||||
|
デフォルトの
|
||||||
|
.Cm stop
|
||||||
|
処理において、プロセスを停止するのに送られるシグナル。
|
||||||
|
デフォルトは
|
||||||
|
.Dv SIGTERM
|
||||||
|
です。
|
||||||
|
.It Va sig_reload
|
||||||
|
デフォルトの
|
||||||
|
.Cm reload
|
||||||
|
処理において、プロセスを再読み込みさせるのに送られるシグナル。
|
||||||
|
デフォルトは
|
||||||
|
.Dv SIGHUP
|
||||||
|
です。
|
||||||
|
.El
|
||||||
|
.Pp
|
||||||
|
.Ar argument
|
||||||
|
で与えられた処理に対して、
|
||||||
|
.Ar argument Ns Va _cmd
|
||||||
|
が定義されていなければ、デフォルト処理が
|
||||||
|
.Ic run_rc_command
|
||||||
|
によって与えられます:
|
||||||
|
.Bl -tag -width ".Sy Argument" -offset indent
|
||||||
|
.It Sy argument
|
||||||
|
.Sy デフォルト処理
|
||||||
|
.It Cm start
|
||||||
|
.Va command
|
||||||
|
が実行されておらず、
|
||||||
|
.Ic checkyesno Va rcvar
|
||||||
|
が成功すれば、
|
||||||
|
.Va command
|
||||||
|
を起動します。
|
||||||
|
.It Cm stop
|
||||||
|
.Ic check_pidfile
|
||||||
|
または
|
||||||
|
.Ic check_process
|
||||||
|
(適切なほう) により
|
||||||
|
.Va command
|
||||||
|
の PID を特定し、それらの PID に対して
|
||||||
|
.Ic kill Va sig_stop
|
||||||
|
を実行し、そしてそれらの PID に対して
|
||||||
|
.Ic wait_for_pids
|
||||||
|
を実行します。
|
||||||
|
.It Cm reload
|
||||||
|
.Cm stop
|
||||||
|
と似ていますが、違うのは代わりに
|
||||||
|
.Va sig_reload
|
||||||
|
を使い、
|
||||||
|
.Ic wait_for_pids
|
||||||
|
を実行しないことです。
|
||||||
|
.It Cm restart
|
||||||
|
.Cm stop
|
||||||
|
処理を実行後に、
|
||||||
|
.Cm start
|
||||||
|
処理を実行します。
|
||||||
|
.It Cm status
|
||||||
|
.Va command
|
||||||
|
の PID を表示するか、もしくはスクリプト固有のステータス情報を表示します。
|
||||||
|
.It Cm poll
|
||||||
|
.Va command
|
||||||
|
が終了するのを待ちます。
|
||||||
|
.It Cm rcvar
|
||||||
|
使用される
|
||||||
|
.Xr rc.conf 5
|
||||||
|
変数を (もしあれば) 表示します。
|
||||||
|
この処理は、対応する
|
||||||
|
.Xr rc.conf 5
|
||||||
|
変数が
|
||||||
|
.Dq Li NO
|
||||||
|
に設定されていても動作します。
|
||||||
|
.El
|
||||||
|
.Pp
|
||||||
|
以下の変数は、
|
||||||
|
.Ic run_rc_command
|
||||||
|
が完了した後だけでなく、
|
||||||
|
.Ar ( argument Ns Va _cmd
|
||||||
|
のような) 処理でも参照できます:
|
||||||
|
.Bl -tag -width ".Va rc_flags" -offset indent
|
||||||
|
.It Va rc_arg
|
||||||
|
fast 及び force 処理が済んだ後の、
|
||||||
|
.Ic run_rc_command
|
||||||
|
に与えられた引数。
|
||||||
|
.It Va rc_flags
|
||||||
|
デフォルトのコマンド実行時のフラグ。
|
||||||
|
環境変数の
|
||||||
|
.Sq Ev flags
|
||||||
|
で上書きされない限り、デフォルトは
|
||||||
|
.Va ${name}_flags
|
||||||
|
です。
|
||||||
|
この変数は
|
||||||
|
.Ar argument Ns Va _precmd
|
||||||
|
処理で変更することができます。
|
||||||
|
.It Va rc_pid
|
||||||
|
.Va command
|
||||||
|
の PID (もしあるならば)。
|
||||||
|
.It Va rc_fast
|
||||||
|
.Dq Li fast
|
||||||
|
プレフィックスが使われた場合、空ではありません。
|
||||||
|
.It Va rc_force
|
||||||
|
.Dq Li force
|
||||||
|
プレフィックスが使われた場合、空ではありません。
|
||||||
|
.El
|
||||||
|
.It Ic run_rc_script Ar file argument
|
||||||
|
スクリプト
|
||||||
|
.Ar file
|
||||||
|
を引数
|
||||||
|
.Ar argument
|
||||||
|
で実行し、スクリプトからの戻り値を処理します。
|
||||||
|
.Pp
|
||||||
|
.Ar file
|
||||||
|
が実行される前に、多くのシェル変数が消去されます:
|
||||||
|
.Bd -ragged -offset indent
|
||||||
|
.Va name ,
|
||||||
|
.Va command ,
|
||||||
|
.Va command_args ,
|
||||||
|
.Va command_interpreter ,
|
||||||
|
.Va extra_commands ,
|
||||||
|
.Va pidfile ,
|
||||||
|
.Va rcvar ,
|
||||||
|
.Va required_dirs ,
|
||||||
|
.Va required_files ,
|
||||||
|
.Va required_vars ,
|
||||||
|
.Ar argument Ns Va _cmd ,
|
||||||
|
.Ar argument Ns Va _precmd .
|
||||||
|
.Ar argument Ns Va _postcmd .
|
||||||
|
.Ed
|
||||||
|
.Pp
|
||||||
|
.Ar file
|
||||||
|
起動時の動作は、以下のチェックに依るものになります:
|
||||||
|
.Bl -enum
|
||||||
|
.It
|
||||||
|
.Ar file
|
||||||
|
の名前が
|
||||||
|
.Pa .sh
|
||||||
|
で終わっていれば、カレントシェルに読み込まれます。
|
||||||
|
.It
|
||||||
|
.Ar file
|
||||||
|
がバックアップもしくは一時ファイルのようならば
|
||||||
|
(例. サフィックスが
|
||||||
|
.Pa ~ , # , .OLD , .orig
|
||||||
|
である)、無視します。
|
||||||
|
.It
|
||||||
|
.Ar file
|
||||||
|
が実行可能でなければ、無視します。
|
||||||
|
.It
|
||||||
|
.Xr rc.conf 5
|
||||||
|
変数の
|
||||||
|
.Va rc_fast_and_loose
|
||||||
|
が空ならば、
|
||||||
|
.Ar file
|
||||||
|
をサブシェルで読み込みます。
|
||||||
|
そうでなければ、カレントシェルで
|
||||||
|
.Ar file
|
||||||
|
を読み込みます。
|
||||||
|
.El
|
||||||
|
.It Ic set_rcvar Op Ar base
|
||||||
|
サービスを起動させるために必要な変数名を設定します。
|
||||||
|
通常
|
||||||
|
.Fx
|
||||||
|
では、デーモンの名称に文字列
|
||||||
|
.Dq Li "_enable"
|
||||||
|
を後置した
|
||||||
|
.Xr rc.conf 5
|
||||||
|
変数により、デーモンが制御されます。
|
||||||
|
これは
|
||||||
|
.Nx
|
||||||
|
には当てはまりません。
|
||||||
|
次のような行がスクリプト中にある場合、
|
||||||
|
.Pp
|
||||||
|
.Dl "rcvar=`set_rcvar`"
|
||||||
|
.Pp
|
||||||
|
この関数は適切な
|
||||||
|
.Xr rc.conf 5
|
||||||
|
変数を作成するために、呼び出し側のスクリプトで定義されているべき変数
|
||||||
|
.Va $name
|
||||||
|
の値を使用します。
|
||||||
|
引数
|
||||||
|
.Ar base
|
||||||
|
が設定されている場合は、
|
||||||
|
.Va $name
|
||||||
|
の代わりに
|
||||||
|
.Ar base
|
||||||
|
を使用します。
|
||||||
|
.It Ic wait_for_pids Op Ar pid ...
|
||||||
|
指定された全ての
|
||||||
|
.Ar pid
|
||||||
|
が消失するまで待ち、 2 秒ごとに残存している
|
||||||
|
.Ar pid
|
||||||
|
を出力します。
|
||||||
|
.It Ic warn Ar message
|
||||||
|
警告メッセージを
|
||||||
|
.Va stderr
|
||||||
|
に表示し、
|
||||||
|
.Xr logger 1
|
||||||
|
を使用してシステムログに記録をします。
|
||||||
|
この警告メッセージは、スクリプト名
|
||||||
|
.Va ( $0
|
||||||
|
より),
|
||||||
|
.Dq Li ": WARNING: " ,
|
||||||
|
及びこれに続く
|
||||||
|
.Ar message
|
||||||
|
で構成されます。
|
||||||
|
.El
|
||||||
|
.Sh 関連ファイル
|
||||||
|
.Bl -tag -width ".Pa /etc/rc.subr" -compact
|
||||||
|
.It Pa /etc/rc.subr
|
||||||
|
.Nm
|
||||||
|
ファイルは
|
||||||
|
.Pa /etc
|
||||||
|
に存在します。
|
||||||
|
.El
|
||||||
|
.Sh 関連項目
|
||||||
|
.Xr rc.conf 5 ,
|
||||||
|
.Xr rc 8
|
||||||
|
.Sh 歴史
|
||||||
|
.Nm
|
||||||
|
スクリプトは
|
||||||
|
.Nx 1.3
|
||||||
|
で登場しました。
|
||||||
|
.Xr rc.d 8
|
||||||
|
をサポートする関数は
|
||||||
|
.Nx 1.5
|
||||||
|
で登場しました。
|
||||||
|
.Nm
|
||||||
|
スクリプトは
|
||||||
|
.Fx 5.0
|
||||||
|
ではじめて登場しました。
|
||||||
Loading…
Add table
Add a link
Reference in a new issue