Linuxシステムの起動プロセス
Linux が起動すると、たくさんの起動情報が表示されます。
Linux システムの起動プロセスは、みんなが思っているほど複雑ではありません。プロセスは 5 つの段階に分けることができます:
カーネルの起動。
init を実行します。
システムの初期化。
ターミナルを作成します。
ユーザーがシステムにログインします。
カーネルブート
コンピューターの電源がオンになると、最初のステップは BIOS 電源投入時セルフテストであり、BIOS で設定されたブートデバイス (通常はハードディスク) に従って開始されます。
オペレーティング システムがハードウェアを引き継いだ後、最初に /boot ディレクトリ内のカーネル ファイルを読み取ります。
init を実行する
init プロセスは、システム内のすべてのプロセスの祖先と比較できます。このプロセスがなければ、システム内のプロセスは開始されません。
init プログラムは最初に設定ファイル /etc/inittab を読み取る必要があります。
実行レベル
多くのプログラムは起動が必要です。これらは、Windows では「サービス」、Linux では「デーモン」と呼ばれます。
init プロセスの主なタスクは、ブート時に開始されるこれらのプログラムを実行することです。
ただし、サーバーとして使用する場合は Apache を起動する必要がありますが、デスクトップとして使用する場合は必要ありません。
Linux では、「ランレベル」と呼ばれる、さまざまな状況に応じて異なるブート プログラムを割り当てることができます。つまり、起動時の「実行レベル」に基づいて、どのプログラムを実行するかが決定されます。
Linux システムには 7 つのランレベルがあります:
ランレベル 0: システムのシャットダウン状態、システムのデフォルトのランレベルを 0 に設定することはできません。それ以外の場合は、正常に起動できません。
ランレベル 1: シングルユーザーの作業ステータス、root 権限、システムメンテナンスに使用され、リモートログインは禁止されています
実行レベル2: マルチユーザーステータス(NFSなし)
実行レベル3: 完全なマルチユーザーステータス(NFSあり)、デスクコマンドにログインした後に制御に入りますラインモード
実行レベル 4: システムは使用されず、予約されています
実行レベル 5: X11 コンソール、ログイン後にグラフィカル GUI モードに入ります
実行レベル 6: システムがシャットダウンして再起動します通常、デフォルト 実行レベルを 6 に設定することはできません。それ以外の場合は、正常に起動しません
システムの初期化
init 設定ファイルに次のような行があります: si::sysinit:/etc/rc.d/ rc.sysinit / etc/rc.d/rc.sysinit を呼び出して実行します。rc.sysinit は主にシステムの初期化作業を完了する重要なスクリプトであり、毎回最初に実行する必要があります。実行レベル。
これが完了する主なタスクは、スワップ パーティションのアクティブ化、ディスクのチェック、ハードウェア モジュールのロード、および最初に実行する必要があるその他のタスクです。
l5:5:wait:/etc/rc.d/rc 5
この行は、パラメータとして 5 を指定して /etc/rc.d/rc を実行することを意味します。 /etc/rc.d/rc は、パラメータとして 5 を受け入れて /etc/rc.d/rc5 を実行するシェル スクリプトです。 d/ ディレクトリ内のすべての rc 起動スクリプトと /etc/rc.d/rc5.d/ ディレクトリ内のこれらの起動スクリプトは、実際には接続ファイルであり、実際の rc 起動スクリプトではありません。 /etc/rc.d/init.d/ ディレクトリ。
これらの rc 起動スクリプトは、通常、開始、停止、再起動、ステータス、その他のパラメーターを受け入れます。
/etc/rc.d/rc5.d/ の rc 起動スクリプトは通常、K または S で始まる接続ファイルです。S で始まる起動スクリプトの場合、start パラメーターを使用して実行されます。
対応するスクリプトと K で始まる接続があり、それがすでに実行状態にある場合 (/var/lock/subsys/ 下のファイルを目印として使用)、最初に stop を使用します。これらのすでに開始されているデーモンを停止し、再度実行するためのパラメータ。
これは、init が実行レベルを変更したときに、関連するすべてのデーモンが確実に再起動されるようにするために行われます。
各実行レベルでどのデーモンが実行されるかについては、ユーザーが chkconfig またはセットアップの「システム サービス」を通じて自分で設定できます。
ターミナルを作成します
rc実行後はinitに戻ります。この時点で、基本的なシステム環境がセットアップされ、さまざまなデーモン プロセスが起動されます。
init は、ユーザーがシステムにログインできるように 6 つの端末を開きます。 inittab の次の 6 行は 6 つのターミナルを定義します:
1:2345:respawn:/sbin/mingetty tty1 2:2345:respawn:/sbin/mingetty tty2 3:2345:respawn:/sbin/mingetty tty3 4:2345:respawn:/sbin/mingetty tty4 5:2345:respawn:/sbin/mingetty tty5 6:2345:respawn:/sbin/mingetty tty6
上記からわかるように、mingetty プログラムは実行レベル 2、3、4、および 5 の respawn モードで実行されます。 mingetty プログラムはターミナルを開くことができます。セットモデル。
同時に、テキストログインインターフェイスが表示されます。このインターフェイスは、私たちがよく見るログインインターフェイスであり、ユーザーはユーザー名を入力するように求められ、ユーザーが入力したユーザーは次のようになります。ユーザーの身元を確認するためにログイン プログラムにパラメーターとして渡されます。
ユーザーログインシステム
一般に、ユーザーがログインするには次の 3 つの方法があります:
(1) コマンドラインログイン
(2) SSH ログイン
(3) グラフィカルインターフェースログイン
実行レベル 5 のグラフィカル ユーザーの場合、ログインはグラフィカル ログイン インターフェイスを介して行われます。ログインに成功すると、KDE や Gnome などのウィンドウ マネージャーに直接入ることができます。
この記事では主にテキスト ログインについて説明します。mingetty ログイン インターフェイスが表示されたら、ユーザー名とパスワードを入力してシステムにログインできます。
Linux のアカウント認証プログラムは、ログイン時に mingetty から送信されたユーザー名をユーザー名パラメーターとして受け取ります。
その後、ログインはユーザー名を分析します。ユーザー名が root ではなく、/etc/nologin ファイルが存在する場合、ログインは nologin ファイルの内容を出力して終了します。
これは通常、システムのメンテナンス中に root 以外のユーザーがログインできないようにするために使用されます。 /etc/securetty に登録されている端末のみが root ユーザーとしてログインできます。このファイルが存在しない場合、root はどの端末でもログインできます。/etc/usertty ファイルは、ユーザーに追加のアクセス制限を課すために使用されます。このファイルが存在しない場合、他の制限はありません。
グラフィックモードとテキストモードを切り替える方法
Linuxのデフォルトでは、ログイン用に6つのコマンドウィンドウターミナルが提供されています。
デフォルトでは、最初のウィンドウ (tty1) にログインします。 6 つのウィンドウは tty1、tty2...tty6 で、Ctrl + Alt + F1 ~ F6 を押して切り替えることができます。
グラフィカル インターフェイスをインストールしている場合は、デフォルトでグラフィカル インターフェイスに入り、Ctrl + Alt + F1 ~ F6 を押してコマンド ウィンドウ インターフェイスのいずれかに入ることができます。
コマンド ウィンドウ インターフェイスに入ってグラフィカル インターフェイスに戻るときは、Ctrl + Alt + F7 を押すだけで戻ります。
vmware 仮想マシンを使用している場合、コマンド ウィンドウを切り替えるショートカット キーは Alt + Space + F1 ~ F6 です。グラフィカル インターフェイスを使用している場合は、Alt + Shift + Ctrl + F1 ~ F6 を押して切り替えてください。コマンドウィンドウ。
Linux シャットダウン
は主に Linux 分野のサーバーで使用され、シャットダウン操作が発生することはほとんどありません。結局のところ、特別な状況がない限り、サーバー上でサービスを実行することに終わりはありません。最終手段としてサービスがシャットダウンされます。
正しいシャットダウンプロセスは: sysnc > shutdown > reboot > です
シャットダウンコマンドは、ヘルプドキュメントを読むために使用できます。
たとえば、次のコマンドを実行してシャットダウンできます:
shutdown シャットダウン コマンドを使用すると、手動でシャットダウンしてヘルプ ドキュメントを読むことができます。たとえば、次のコマンドを実行してシャットダウンできます:
shutdown –h 10 'このサーバーは 10 分後にシャットダウンします' このコマンドは、コンピュータが 10 分後にシャットダウンし、現在の画面に表示されることを全員に伝えます。ログインしているユーザー。
Shutdown –h now すぐにシャットダウンします
Shutdown –h 20:25 システムは今日 20:25 にシャットダウンします
Shutdown –h +10 10 分後にシャットダウンします
Shutdown –r now システムはすぐに再起動します
Shutdown –r + 10 システムは 10 分後に再起動します
reboot は再起動を意味し、shutdown –r now と同等です
システムのシャットダウンを停止します。これは shutdown –h now および poweroff と同等です
最後に、要約すると、システムを再起動する場合でも、システムをシャットダウンする場合でも、最初に sync コマンドを実行する必要があります。 sync コマンドは、メモリ内のデータをディスクに書き込みます。
シャットダウン コマンドには shutdown –h now halt poweroff と init 0 が含まれ、システムを再起動するコマンドには shutdown –r now reboot init 6 が含まれます。