はじめに
この実験では、Linux システムの動作状態を確認する方法、特にシステムがシングルユーザーモードにあるかどうかを判断する方法を学びます。runlevel コマンドと who -r コマンドを使用して従来のランレベル (runlevel) を調べ、systemctl get-default を使用して最新の systemd 環境におけるデフォルトのシステムターゲットを調べます。この実践的な体験を通じて、システムの動作状態を理解して検証するための実用的なスキルを身につけることができます。
runlevel コマンドでランレベルを確認する
このステップでは、Linux のランレベル (runlevel) の概念と、runlevel コマンドを使用して現在のランレベルを確認する方法を探ります。
ランレベルは、Linux システムのさまざまな動作状態を表します。各ランレベルは、どのサービスを起動し、どのサービスを停止するかを定義します。たとえば、あるランレベルはグラフィカルインターフェイスを持つマルチユーザーシステム用で、別のランレベルはメンテナンス用のシングルユーザーモード用です。
最新の Linux ディストリビューションでは、従来のランレベルの代わりに systemd ターゲットを使用することが多いですが、古いシステムやドキュメントでランレベルに遭遇することがあるため、ランレベルを理解することは依然として重要です。
LabEx 環境の現在のランレベルを確認しましょう。まだターミナルを開いていない場合は、開いてください。
以下のコマンドを入力し、Enter キーを押します。
runlevel
次のような出力が表示されるはずです。
N 5
出力を分解してみましょう。
- 最初の文字(この場合は
N)は前のランレベルを示します。Nは前のランレベルがない(システムが起動したばかり)ことを意味します。 - 2 番目の文字(この場合は
5)は現在のランレベルを示します。
従来の SysVinit システムでは、一般的なランレベルには以下のようなものがあります。
0: 停止(システムをシャットダウンする)1: シングルユーザーモード(メンテナンス用)2: ネットワークなしのマルチユーザーモード3: ネットワークありのマルチユーザーモード(テキストコンソール)4: 使用されていない/ユーザー定義可能5: ネットワークとグラフィカルインターフェイスを持つマルチユーザーモード6: 再起動(システムを再起動する)
あなたの LabEx 環境はランレベル 5 で動作しており、これはグラフィカルデスクトップ環境を持つマルチユーザーシステムに対応しています。
ランレベルを理解することで、システムの起動問題のトラブルシューティングやシステムサービスの管理が容易になります。
続ける をクリックして次のステップに進みます。
who -r コマンドでランレベルを確認する
前のステップでは、runlevel コマンドを使用して現在のランレベルを確認しました。同様の情報を取得する別の方法は、who コマンドに -r オプションを付けて使用することです。
who コマンドは通常、システムにログインしているユーザーを表示するために使用されます。しかし、-r オプションを付けると、現在のランレベルを表示します。
試してみましょう。ターミナルで以下のコマンドを入力し、Enter キーを押します。
who -r
次のような出力が表示されるはずです。
run-level 5 <DATE> <TIME>
この出力は、システムが現在ランレベル 5 にあることを確認します。日付と時刻は、システムがこのランレベルに入った時刻を示しています。
runlevel と who -r の出力を比較すると、両方のコマンドが現在のランレベルに関する情報を提供していることがわかりますが、形式は異なります。who -r は日付と時刻を含む、より詳細な出力を提供します。
Linux では、同じ結果を得るために異なるコマンドを使用することは一般的です。必要な情報を取得するための複数の方法を知っておくと便利です。なぜなら、あるコマンドは特定のシステムで利用可能で、他のコマンドは利用できない場合があり、また、あるコマンドが他のコマンドよりも詳細な情報を提供することもあるからです。
runlevel と who -r の両方を使って練習し、システムの動作状態を確認することに慣れましょう。
続ける をクリックして次のステップに進みます。
systemctl get-default でデフォルトターゲットを確認する
先に述べたように、最新の Linux ディストリビューションでは、従来の SysVinit システムの代わりに systemd を使用することが多いです。systemd は「ターゲット (target)」を使用します。これはランレベル (runlevel) と概念的に似ていますが、より柔軟性があります。
ターゲットは、システムが目的の状態に到達するために起動または停止すべき systemd ユニット(サービス、マウントポイント、ソケットなど)のグループです。デフォルトターゲットは、システムが起動時に入る状態です。
systemctl コマンドを使用して systemd とやり取りすることができます。get-default サブコマンドはデフォルトターゲットを表示します。
注意: LabEx 環境は Docker コンテナ内で実行されているため、systemctl コマンドの動作や表示される情報は、完全にインストールされたオペレーティングシステムとは異なる場合があります。ただし、デフォルトターゲットの概念を理解するために使用することはできます。
ターミナルで以下のコマンドを入力し、Enter キーを押します。
systemctl get-default
次のような出力が表示されるはずです。
graphical.target
この出力は、このシステムのデフォルトターゲットが graphical.target であることを示しています。このターゲットには通常、グラフィカルデスクトップ環境を持つマルチユーザーシステムに必要なすべてのサービスが含まれており、先に見たランレベル 5 と一致します。
他の一般的なターゲットには以下のようなものがあります。
multi-user.target: ランレベル 3 と同様に、グラフィカルインターフェイスのないマルチユーザーシステム。rescue.target: システム回復用のシングルユーザーモード。reboot.target: システムを再起動するために使用されます。poweroff.target: システムをシャットダウンするために使用されます。
この LabEx 環境ではデフォルトターゲットを変更できないかもしれませんが、systemctl get-default でデフォルトターゲットを確認する方法を理解することは、systemd ベースのシステムを管理するための基本的なスキルです。
これで、システムの動作状態またはデフォルトの起動状態を確認する 3 つの異なる方法、runlevel、who -r、および systemctl get-default を学びました。
続ける をクリックしてこの実験を完了します。
まとめ
この実験では、Linux システムの動作状態を確認する方法を学びました。まず、異なるシステム状態を表すランレベル (runlevel) の概念を調べ、runlevel コマンドを使用して現在のランレベルを判断しました。出力の意味、つまり前のランレベルと現在のランレベルを理解し、従来の SysVinit システムにおける一般的なランレベルを復習しました。
次に、who -r コマンドを使用してランレベルを確認する別の方法を学びました。このコマンドはシステムのランレベルに関する同様の情報を提供します。最後に、systemd をよく使用する最新の Linux ディストリビューションが、従来のランレベルの代わりにターゲット (target) を通じてシステム状態を管理する方法を調べ、systemctl get-default コマンドを使用してデフォルトターゲットを特定しました。



