日本語 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.3-RELEASE-K, 13.0-RELEASE-K から 13.2-RELEASE-K は、全翻訳済み)
13.3-STABLE-K, 15.0-CURRENT-K は現在、作成中で日々更新されています。
Table of Contents
INIT(8) FreeBSD システム管理者マニュアル INIT(8) 名称 init -- プロセス制御の初期化を行う 書式 init init [0 | 1 | 6 | c | q] 解説 init ユーティリティは、ブート処理の最後に起動されます。init は、通常、 rc(8) で説明されている自動リブートシーケンスを実行します。それが成功する と、システムは、マルチユーザモードになります。リブートスクリプトの実行に 失敗すると、init は、スーパユーザが使うシェルを起動してシングルユーザモー ドを開始させます。init ユーティリティは、ブートプログラムからのパラメータ の指示を受けて、マルチユーザモードに移行せず、一般のデーモンを起動するこ となくシングルユーザモードのシェルを起動させることができます。その場合、 システムは、メンテナンスのためのモードになり、シェルを抜ける (^D を入力す る) ことでシングルユーザモードからマルチユーザモードになります。これに よって、init は、/etc/rc をファストブートモード (ディスクチェック省略) で 実行します。 もし ttys(5) ファイルの console のエントリが ``insecure'' にマークされて いた場合には、init は、シングルユーザモードのシェルを起動する前に、スーパ ユーザのパスワードを要求します。パスワードチェックは、console が ``secure'' にマークされていればスキップされます。 システムセキュリティレベル (security(7) 参照) が最初に 0 であるなら、init は、変更しないままとします。そうでなければ、init は、最初にレベル 1 に上 げます。レベルは、減らすことはできませんので、その後の操作においてはレベ ルは、最低 1 であり、これは、シングルユーザモードに戻る場合においても成立 ちます。マルチユーザで実行している間に 1 より高いレベルで実行したいなら、 例えば、スタートアップスクリプト rc(8) によって、kern.securelevel 変数に 必要なセキュリティレベルを設定するために sysctl(8) を使用して、マルチユー ザになる前にそれを設定することができます。 init が jail 中で実行される場合、``ホストシステム'' のセキュリティレベル は、影響しません。jail をサポートするためにカーネル中に設定される情報の一 部には、jail 毎のセキュリティレベルがあります。これにより、ホストシステム よりも高いセキュリティレベルで jail 内を実行することが可能となります。 jail に関する更なる詳細は、jail(8) を参照してください。 マルチユーザモードの場合、init は、ttys(5) ファイルで指示された端末ポート のためのプロセスを管理します。init ユーティリティは、このファイルを読み込 み、2 番目のフィールドに指示されたコマンドを実行します。ただし、1 番目の フィールドが /dev 中のデバイスを参照し、そのデバイスが設定されていない場 合は、例外です。1 番目のフィールドは、コマンドへ渡される最後の引数になり ます。そのコマンドは、通常、getty(8) で、getty は、tty をオープン、初期化 し、login(1) プログラムを実行します。login プログラムは、有効なユーザがロ グインするとき、シェルを起動します。このシェルが死ぬ (die) とき、ユーザが ログアウトするか、または (シグナルが) 起こって異常終了のいずれかのため に、サイクルは、ラインのための新しい getty を実行することによってに再開さ れます。 init ユーティリティは、任意のデーモンを走行させ続けるためにも使用可能であ り、デーモンが死んだ場合には、自動的に再開します。この場合、ttys(5) ファ イルの 1 番目のフィールドは、設定されたデバイスノードへのパスを参照しては ならず、デーモンに対する最後のコマンドライン引数として渡されます。これ は、AT&T System V UNIX /etc/inittab にある機能と同様です。 ラインの状態 (on, off, secure, getty, ウィンドウの情報) は、ttys(5) ファ イルを書き換えて ``kill -HUP 1'' によってシグナル SIGHUP を init に送るこ とで、リブートせずに変更できます。このシグナルを受け取ると init は、 ttys(5) ファイルを再度読み込みます。ttys(5) でラインがオフにされると、 init は、そのラインに関係するセッションの制御プロセスに SIGHUP シグナルを 送ります。オフであったラインが ttys(5) ファイルでオンにされると、init は、2 番目のフィールドで指定されるコマンドを起動します。ラインのコマンド やウィンドウフィールドが変更された場合、その変更は、現在のログインセッ ションが終了するまで有効にはなりません。(例えば、init によって新しいプロ セスが起動されるまで有効にならない。) ttys(5) 中のあるラインをコメントア ウトあるいは削除した場合は、init は、そのラインに関しては、何も実行しませ ん。 ``kill -TERM 1'' などによって terminate シグナル (TERM) を受けると、init ユーティリティは、マルチユーザモードを終了し、シングルユーザモードに復帰 します。ハードウェアまたはソフトウェアの問題でデッドロックしたプロセスが ある場合、init は、すべてのプロセスの終了を待たず (これは、無限に終らない かも知れません)、30 秒間でタイムアウトして警告のメッセージを出力します。 terminal stop シグナル (TSTP)、すなわち ``kill -TSTP 1''、を送ると、init ユーティリティは、新しいプロセスを起動するのをやめ、徐々にシステム停止可 能な状態にします。その後、hangup シグナルで完全なマルチユーザモードに戻 り、terminate シグナルでシングルユーザモードに移ります。この hook は、 reboot(8) と halt(8) で使われています。 interrupt シグナル (INT)、すなわち ``kill -INT 1''、を送ると、init ユー ティリティは、すべてのプロセスを (デッドロックプロセスを待たずに) 終了さ せ、リブートを実行します。この操作は、マシンがハングした時に、カーネルの 中から、あるいは、X から、システムを安全にシャットダウンするのに便利で す。 init ユーティリティは、同様に、ユーザ定義シグナル 1 (USR1) を送られた場合 は、マシンを停止し、ユーザ定義シグナル 2 (USR2) を送られた場合は、マシン を停止してから電源を切ります (ハードウェアが許す場合)。 マシンをシャットダウンする時、init は、/etc/rc.shutdown スクリプトを実行 しようとします。このスクリプトは、innd (インターネットニュースサーバ) の ような特定のプログラムを綺麗に終了させるために使用可能です。このスクリプ トが 120 秒以内に終了しないなら、init は、それを終了します。タイムアウト は、sysctl(8) 変数 kern.init_shutdown_timeout を通して設定することができ ます。 init の役割は、非常に重要で、もし init が死ぬとシステムが自動的にリブート されます。もしブート時に init プログラムを見つけられなければ、システム は、``panic: init died (signal %d, exit %d)'' のようなメッセージを出力し て panic で終了します。 2 番目の書式行のようにユーザプロセスとして実行する場合、init は、AT&T System V UNIX の動作をエミュレートします。すなわち、スーパユーザがコマン ドラインでランレベルを指定可能であり、init は、オリジナルの (PID 1) init に次のようなシグナルを送ります: ランレベル シグナル 動作 0 SIGUSR1 停止 0 SIGUSR2 停止して電源切断 1 SIGTERM シングルユーザモードへ移行 6 SIGINT マシンを再起動 c SIGTSTP 更なるログインを抑止 q SIGHUP ファイル ttys(5) を再スキャン 関連ファイル /dev/console システムのコンソールデバイス /dev/tty* ttys(5) 内にある端末ポート /etc/ttys 端末の初期化情報が書かれたファイル /etc/rc システム立ち上げ用スクリプト /etc/rc.shutdown システムシャットダウン用スクリプト /var/log/init.log rc(8) のログは、システムコンソールデバイスが利用可能で ないなら、出力します。 診断 getty repeating too quickly on port %s, sleeping. ラインにサービスを提供 するプロセスが、起動されるたびにすぐ終了してしまう。これは、端末ラインに 着信があるかノイズが大きい場合にしばしば起こります。init は、30 秒間ス リープし、その後、プロセスを開始させようとし続けます。 some processes would not die; ps axl advised. シャットダウンの際、ハング していて終了させられないプロセスがあります。この状態は、通常、デバイスに 異常があるときにデバイスドライバで貼り付いてしまうことにより起こります。 関連項目 kill(1), login(1), sh(1), ttys(5), security(7), getty(8), halt(8), jail(8), rc(8), reboot(8), shutdown(8), sysctl(8) 歴史 init ユーティリティは、Version 1 AT&T UNIX で登場しました。 警告 sysctl(8) を持たないシステムは、セキュリティレベル -1 で動作します。 ブートシーケンスにおいて、セキュリティレベルを 1 より高く設定するのがあま りにも早すぎると、fsck(8) が一貫性のないファイルシステムを補修することを 妨げてしまう可能性があります。セキュリティレベル設定を行う場所として適切 なところは、全てのマルチユーザ立ち上げ処理が完了した後である、/etc/rc の 末尾です。 FreeBSD 11.2 October 3, 2016 FreeBSD 11.2