日本語 man コマンド類 (ja-man-1.1j_5) と日本語 man ドキュメント (ja-man-doc-5.4 (5.4-RELEASE 用) など) をインストールすると、以下のような man コマンド閲覧、キーワード検索が コンソールからできるようになります。
4.11-RELEASE-K, 5.4-RELEASE-K, 5.5-RELEASE-K, 6.0-RELEASE-K から 6.4-RELEASE-K, 7.0-RELEASE-K から 7.4-RELEASE-K, 8.0-RELEASE-K から 8.4-RELEASE-K, 9.0-RELEASE-K から 9.3-RELEASE-K, 10.0-RELEASE-K から 10.3-RELEASE-K, 11.0-RELEASE-K から 11.4-RELEASE-K, 12.0-RELEASE-K, 12.1-RELEASE-K は、 プライベート版 (小金丸が編集してまとめたもの) ですが、 より多くの翻訳したファイルが含まれています。 (5.4-RELEASE-K から 6.4-RELEASE-K, 7.0-RELEASE-K から 7.4-RELEASE-K, 8.0-RELEASE-K から 8.4-RELEASE-K, 9.0-RELEASE-K から 9.3-RELEASE-K, 10.0-RELEASE-K から 10.3-RELEASE-K, 11.0-RELEASE-K から 11.4-RELEASE-K, 12.0-RELEASE-K から 12.4-RELEASE-K, 13.0-RELEASE-K から 13.3-RELEASE-K, 14.0-RELEASE-K から 14.1-RELEASE-K は、全翻訳済み)
13.3-STABLE-K, 15.0-CURRENT-K は現在、作成中で日々更新されています。
Table of Contents
RC.SUBR(8) FreeBSD システム管理者マニュアル RC.SUBR(8) 名称 rc.subr -- システムのシェルスクリプトによって使用される関数 書式 . /etc/rc.subr backup_file action file current backup checkyesno var check_pidfile pidfile procname [interpreter] check_process procname [interpreter] debug message err exitval message force_depend name info message load_kld [-e regex] [-m module] file load_rc_config name load_rc_config_var name var mount_critical_filesystems type rc_usage command ... reverse_list item ... run_rc_command argument run_rc_script file argument wait_for_pids [pid ...] warn message 解説 rc.subr スクリプトは、rc(8) のような様々なスクリプトによって使用される、 一般的なシェルスクリプト関数と変数定義を含んでいます。また /usr/local/etc/rc.d の ports によって要求されるスクリプトは、それを利用す るために最終的に書き直されます。 rc.subr 関数の大部分は、NetBSD から取り込まれました。 それらは、現在のシェルに /etc/rc.subr をソース (読み込む) することによっ てアクセスされます。 次のシェル関数が利用可能です: backup_file action file current backup file のバックアップコピーを current に行います。rc.conf(5) 変数 backup_uses_rcs が ``YES'' であるなら、current の以前のバージョンを アーカイブするために rcs(1) を使用し、そうでなければ、backup として current の以前のバージョンを保存します。 action 引数は、次の 1 つを指定します: add file は、現在、このバックアップメカニズムによってバックアッ プされているか、またはたぶんこのバックアップメカニズムに再 び入ります。current は、作成され、必要であるなら、rcs(1) ファイルも、同様に作成されます。 update file は、変更されており、バックアップされる必要があります。 current が存在するなら、それは、backup にコピーされるか、ま たは rcs(1) (リポジトリファイルが古いなら) にチェックインさ れ、次に、file は、current にコピーされます。 remove file は、もはやこのバックアップメカニズムによって追跡されて いません。rcs(1) が使用されているなら、空のファイルが、 チェックインされ、current は、削除され、そうでなければ、 current は、backup に移動されます。 checkyesno var var が ``YES'', ``TRUE'', ``ON'' または `1' に定義されるなら、0 を 返します。var が ``NO'', ``FALSE'', ``OFF'' または `0' に定義される なら、1 を返します。そうでなければ、var が正確に設定されていないと 警告します。値は、大文字と小文字を区別しません。注: var は、値では なく、変数名であるべきです。checkyesno は、それ自体によって変数を拡 張します。 check_pidfile pidfile procname [interpreter] PID のための pidfile の最初の行の最初の単語を解析し、その PID があ るプロセスが実行していて、その最初の引数が procname と一致すること を保証します。成功するなら、一致する PID を印刷 (表示) し、そうでな ければ、何も印刷 (表示) しません。interpreter が提供されるなら、 procname の最初の行を解析し、行が次の形式であることを保証します: #! interpreter [...] そして、検索するプロセスの文字列として追加された、そのオプションの 引数と procname で interpreter を使用します。 check_process procname [interpreter] procname と一致する最初の引数で実行しているあらゆるプロセスの PID を印刷 (表示) します。interpreter は、check_pidfile のように扱われ ます。 debug message デバッグメッセージを stderr に表示して、logger(1) を使用して、シス テムログにそれをログ記録して、呼び出し側に返ります。エラーメッセー ジは、($0 からの) スクリプト名に続く ``: DEBUG: '' と次に続く message から成ります。この関数は、スクリプトをデバッグの助けとして 開発者によって使用されることを目的としています。それは、rc.conf(5) 変数 rc_debug によってオンまたはオフに切り替えることができます。 err exitval message エラーメッセージを stderr に表示して、logger(1) を使用して、システ ムログにそれをログ記録して、exitval の終了値で終了します。エラー メッセージは、($0 からの) スクリプト名に続く ``: ERROR: '' と次に続 く message から成ります。 force_depend name 勧告メッセージを出力して、強制的に name サービスを開始します。name 引数は、通常 /etc/rc.d/name である、スクリプトへのパスの basename(1) の構成要素ですスクリプトが何かの理由で失敗するなら、警 告を出力し、1 の返り値で返ります。それは、成功したなら、0 を返しま す。 info message 情報メッセージを stdout に表示して、logger(1) を使用して、システム ログにそれをログ記録します。メッセージは、($0 からの) スクリプト名 に続く ``: INFO: '' と次に続く message から成ります。この情報の出力 の表示は、rc.conf(5) 変数 rc_info によってオンまたはオフに切り替え ることができます。 load_kld [-e regex] [-m module] file file が既にロードされていないなら、カーネルモジュールとして、それを ロードします。モジュール状態をチェックする目的として、-m または -e を通して提供することができるモジュール名と適合する egrep(1) 正規表 現を使用して、正確なモジュール名を指定することができます。デフォル トでは、モジュールには、いつものことではなく、file として同じ名前が あると仮定されます。 load_rc_config name name のための設定ファイルをソース (読み込み) します。最初に、 /etc/rc.conf がまだ読み込まれていないなら、それが、ソース (読み込 み) されます。次に、/etc/rc.conf.d/name が既存のファイルであるな ら、それが、ソース (読み込み) されます。後者は、スクリプトの編集を 必要とせずに、与えられた rc.d(8) スクリプトの振る舞いを上書きするた めに管理者のために容易なメカニズムを提供するために、呼び出している スクリプトによって定義された run_rc_command 引数を上書きするため に、他の変数の割り当ても含みます。 load_rc_config_var name var name のための rc.conf(5) 変数 var を読み込み、他の変数の割り当てか ら望まれない副作用を防止するために、サブシェルの load_rc_config を 使用して、現在のシェルに設定します。 mount_critical_filesystems type 現在マウントされていない、それぞれのものをマウントして、rc.conf(5) 変数 critical_filesystems_type に見つけられるように、重大なファイル システムのリストを処理します。 rc_usage command ... ``[fast|force|one|quiet]'' によって前に置かれる有効な引数のリストで ある、commands で $0 のための使用法メッセージを印刷 (表示) します。 reverse_list item ... 逆の順序で items のリストを印刷 (表示) します。 run_rc_command argument 様々なシェル変数の設定に基づき、現在の rc.d(8) スクリプトのための argument メソッドを実行します。run_rc_command は、きわめて柔軟であ り、完全に機能的な rc.d(8) スクリプトを少量のシェルコードで実装する ことができます。 argument は、次の 1 つである、サポートされたコマンドのリストのため に検索されます: start サービスを開始します。これは、サービスが、rc.conf(5) によって指定されるように開始されることをチェックする べきです。また、サービスが既に実行しているかどうかを しらべ、そうであるなら、開始することを拒否します。シ ステムがブートプロセスの速度を上げるために、マルチ ユーザモードで直接開始されるなら、この後者のチェック は、標準の FreeBSD スクリプトによって実行されませ ん。 stop サービスが、rc.conf(5) によって指定されるように開始 されるなら、サービスを停止します。これは、サービスが 実行されていることをチェックし、そうではないなら、エ ラーを出すべきです。 restart stop の次に、start を実行します。デフォルトは、(実行 しているなら) プログラムのプロセス ID を表示すること です。 enabled サービスが有効にされるなら、0 を返し、それがそうでな いなら、1 を返します。このコマンドは、何も印刷 (表 示) しません。 rcvar (もしあるなら) rc.conf(5) 変数が、サービスのスタート アップを制御するために使用されることを表示します。 pidfile または procname が設定されているなら、次もサポートされます: poll コマンドが終了することを待ちます。 status プロセスの状態を表示します。 他のサポートされるコマンドは、オプションの変数 extra_commands にリ ストされています。 argument (引数) は、その操作を変更する次の接頭辞の 1 つを持つことが できます: fast 既存の実行しているプロセスのためのチェックをスキップ し、rc_fast=YES を設定します。 force ``YES'' に設定されている rcvar のためのチェックをス キップし、rc_force=YES を設定します。これは、0 以外を 返している argument_precmd を無視し、失敗している required_* テストのいずれも無視し、常に 0 の終了ステー タスを返します。 one ``YES'' に設定されている rcvar のためのチェックをス キップし、すべての他の必須条件のテストを実行します。 quiet いくつかの冗長な診断を抑制します。現在、これは、 (rc.subr の内部の check_startmsgs によってチェックされ る) メッセージ "Starting ${name}" と rc.conf(5) で有効 にされないサービスの使用法に関するエラーを含みます。ま た、この接頭辞は、rc_quiet=YES を設定します。次を注意 してください: rc_quiet は、すべてのデバッグと警告メッ セージを完全に隠すことを目的としていませんが、それらの 特定の小さなクラスだけ隠します。 run_rc_command は、その振る舞いを制御する次のシェル変数を使用しま す。特に指定のない限り、オプションです。 name このスクリプトの名前。これは、オプションではありま せん。 rcvar rcvar の値は、この方法が実行されるべきかどうかを決 定するために、checkyesno でチェックされます。 command コマンドへのフルパス。argument_cmd が、サポートされ たキーワードごとに定義されるなら、必要ではありませ ん。${name}_program によって上書きすることができま す。 command_args オプションの引数よよび command のためのシェルディレ クティブ。 command_interpreter command は、次で開始されます: #! command_interpreter [...] ps(1) コマンドの結果は、次の通りです: command_interpreter [...] command それで、command ではなく、実行しているコマンドの (複数の) PID を見つける文字列を使用します。 extra_commands サポートされた特別なコマンド/キーワード/引数。 pidfile PID ファイルへのパス。実行しているコマンドの (複数 の) PID を決定するために使用されます。pidfile が設 定されるなら、PID を見つけるために、次を使用します: check_pidfile $pidfile $procname そうでなければ、command が設定されるなら、PID を見 つけるために、次を使用します: check_process $procname procname チェックするプロセス名。デフォルトは、command の値 です。 required_dirs start メソッドを実行する前に、リストされたディレク トリの存在をチェックします。 required_files start メソッドを実行する前に、リストされたファイル の読みやすさをチェックします。 required_modules start 処理を実行する前に、リストされたカーネルモ ジュールがロードされることを確実にします。予備のコ マンドがエラー条件を示すなら、不足しているモジュー ルが無駄にロードされないように、start_precmd からコ マンドを呼び出した後に、これが行われます。リスト中 の単語は、オプションの ``:modname'' または ``~pattern'' 接尾辞を持つことができます。modname ま たは pattern パラメータは、それぞれ -m または -e オ プションを通して load_kld に渡されます。詳細につい ては、本文書の load_kld の説明を参照してください。 required_vars start メソッドを実行する前に、リスト変数ののそれぞ れで checkyesno を実行します。 ${name}_chdir ${name}_chroot が提供されないなら、command を実行す る前に cd するディレクトリ。 ${name}_chroot command を実行する前に chroot(8) するのディレクト リ。/usr がマウントされた後にのみサポートされます。 ${name}_env command を実行する環境変数のリスト。これは、env(1) ユーティリティに引数として渡されます。 ${name}_fib command を実行する FIB 経路表番号。より詳しい情報に ついては、setfib(1) を参照してください。 ${name}_flags 呼び出す command への引数。これは、通常 rc.d(8) ス クリプトではなく、rc.conf(5) で設定されます。これを 上書きするために、環境変数 `flags' を使用することが できます。 ${name}_nice command を実行する nice(1) レベル。/usr がマウント された後にのみサポートされます。 ${name}_oomprotect スワップ空間が使い果たされるとき、kill されることか ら protect(1) command。YES が使用されるなら、子プロ セスは、保護されません。ALL であるなら、すべての子 プロセスを保護します。 ${name}_program コマンドへのフルパス。両方が設定されるなら、command を上書きしますが、command が設定されていなければ、 効果はありません。通常、${name}_program は、 rc.conf(5) に設定されるべきですが、command は、スク リプトに設定されるべきです。 ${name}_user ${name}_chroot が設定されているなら、chroot(8) を使 用して、ユーザは、command を実行し、そうでなけれ ば、su(1) を使用します。/usr がマウントされた後にの みサポートされます。 ${name}_group chroot された command を実行するグループ。 ${name}_groups chroot された command を実行するための補助グループ のコンマで区切られたリスト。 ${name}_prepend command の先頭に追加されるコマンド。これは、 ${name}_env, ${name}_fib または ${name}_nice の一般 的なバージョンです。 argument_cmd argument のデフォルトのメソッドを上書きするシェルコ マンド。 argument_precmd argument_cmd を実行する直前、または argument のため のデフォルトのメソッドを実行するシェルコマンド。こ れが 0 以外の終了コードを返すなら、主要のメソッド は、実行されません。デフォルトのメソッドが実行され ているなら、このチェックは、required_* チェックとプ ロセスの (非) 存在チェックの後に、実行されます。 argument_postcmd argument_cmd を実行する直前、または 0 の終了コード を返す argument のためのデフォルトのメソッドを実行 するシェルコマンド。 sig_stop デフォルトの stop メソッドで停止するプロセスに送る シグナル。デフォルトは、SIGTERM です。 sig_reload デフォルトの reload メソッドでリロードするプロセス に送るシグナル。デフォルトは、SIGHUP です。 与えられたメソッド argument について、argument_cmd が定義されていな いなら、デフォルトのメソッドが、run_rc_command によって提供されま す: 引数 デフォルトのメソッド start command が実行していなくて、checkyesno rcvar が成功 するなら、command を開始します。 stop check_pidfile または check_process (必要に応じて) を付けた command の PID を決定し、それらの PID を kill sig_stop し、それらの PID で wait_for_pids を 実行します。 reload 代わりに、sig_reload を使用し、wait_for_pids を実行 しないことを除いて、stop に似ています。stop との他 の違いは、reload が、デフォルトで提供されないことで す。それは、適切であるなば、extra_commands を通して 有効にすることができます: extra_commands=reload restart stop メソッドを実行し、次に start メソッドを実行し ます。 status command の PID、またはいくつかの他のスクリプト特有 の状態操作を表示します。 poll command が終了するのを待ちます。 rcvar (もしあるなら) 使用される rc.conf(5) 変数を表示しま す。たとえ適切な rc.conf(5) 変数が ``NO'' に設定さ れても、このメソッドは、常に動作します。 次の変数は、run_rc_command が完了した後と同様に、(argument_cmd のよ うな) メソッドに利用可能です: rc_arg fast と force 処理が実行された後に、 run_rc_command に提供される引数。 rc_flags デフォルトコマンドを開始するフラグ。環境変数 `flags' によって上書きされないなら、デフォルト は、${name}_flags です。この変数は、 argument_precmd メソッドによって変更されます。 rc_service それが自体を再呼び出しする必要がある場合に、実行 されているサービススクリプトへのパス。 rc_pid (適切であるなら) command の PID。 rc_fast ``fast'' 接頭辞が使用されたなら、空ではありませ ん。 rc_force ``force'' 接頭辞が使用されたなら、空ではありませ ん。 run_rc_script file argument argument の引数を付けてスクリプト file を開始し、スクリプトからの返 り値を処理します。 様々なシェル変数は、file が開始される前に、未設定にされます: name, command, command_args, command_interpreter, extra_commands, pidfile, rcvar, required_dirs, required_files, required_vars, argument_cmd, argument_precmd. argument_postcmd. file のスタートアップの振る舞いは、次のチェックに依存します: 1. file が .sh で終わるなら、それは、現在のシェルにソース (読み込 まれる) されます。 2. file がバックアップまたはスクラッチファイル (例えば、~, #, .OLD または .orig の接尾辞がある) であるように思われるなら、そ れを無視します。 3. file が実行形式ではないなら、それを無視します。 4. rc.conf(5) 変数 rc_fast_and_loose が空であるなら、サブシェルで file をソース (読み込み) し、そうでなければ、現在のシェルに file をソース (読み込み) します。 stop_boot [always] マルチユーザモードになるブートを防ぎます。autoboot 変数が、`yes' に 設定されるか、または checkyesno が、常に真の値を示すなら、SIGTERM シグナルは、rc(8) となると仮定される、親のプロセスに送られます。そ うでなければ、シェルは、0 以外のステータスで終了します。 wait_for_pids [pid ...] 2 秒ごとに未解決の pid にリストを印刷 (表示) して、提供された pid のすべてがこれ以上存在しなくなるまで、待ちます。 warn message stderr (標準エラー) に警告メッセージを表示し、logger(1) を使用して システムログにそれをログ記録します。警告メッセージは、($0 からの) スクリプトの名前、続いて ``: WARNING: '' そして次に message から成 ります。 関連ファイル /etc/rc.subr rc.subr ファイルは、/etc に存在します。 関連項目 rc.conf(5), rc(8) 歴史 rc.subr スクリプトは、NetBSD 1.3 で登場しました。rc.d(8) をサポートする関 数は、NetBSD 1.5 で登場しました。rc.subr スクリプトは、FreeBSD 5.0 ではじ めて登場しました。 FreeBSD 11.4 January 15, 2019 FreeBSD 11.4