【runlevel】 現在または以前のシステムランレベルを表示するコマンド
runlevelは、システムの現在および以前のランレベルを簡単に確認できるLinuxコマンドです。
主にSysV init環境で利用され、システム起動状態や運用状況の把握に役立ちます。
実行結果には、前回と現在のランレベルが表示されるため、システム管理やトラブルシュートの際に便利です。
runlevelの役割と基本
システムランレベルの定義と意義
システムランレベルとは、オペレーティングシステムの現在の動作状態を示す数値や記号の組み合わせです。
各ランレベルには以下のような役割が設定されています。
- 0:システム停止
- 1:シングルユーザーモード
- 3:マルチユーザーモード(コマンドラインのみ)
- 5:マルチユーザーモード(グラフィカルインターフェース含む)
- 6:再起動
これらのランレベルは、システムの起動、運用、停止において必要なプロセスの制御やサービスの管理に利用されます。
ランレベルの概念を理解することで、システム状態の把握や問題発生時の原因追及が容易になります。
SysV init環境との連携
runlevelコマンドは、主にSysV init環境で利用されるツールです。
SysV initは従来の初期化システムとして広く使用され、プロセスの起動順序やサービスの管理を数値化されたランレベルに依存しています。
以下の点に注目してください。
- SysV initでは、システム起動時に設定されたランレベルに応じて必要なスクリプトが実行される
- runlevelコマンドは、システムの前回と現在のランレベルを出力することで、起動プロセスの状態を確認できる
- 最新のディストリビューションではsystemdへの移行が進んでいるが、一部の環境では依然としてSysV initが採用されている
runlevelコマンドの使い方
基本構文と利用可能なオプション
runlevelコマンドはシンプルな構文で使用され、基本的には引数を必要としません。
一般的な利用方法は以下の通りです。
- コマンド実行例:
runlevel
- 出力は、前回のランレベルと現在のランレベルを空白で区切った形で表示される
runlevelコマンド自体は複雑なオプションを持たず、直感的に実行できる点が魅力です。
システムの状態確認やトラブルシュートの際に、シンプルな操作で現在の動作状態を素早く確認できるため、管理者にとって有用なツールとなっています。
実行結果の読み方
前回と現在のランレベルの表示意味
runlevelコマンドの出力は、通常2つのフィールドから構成されます。
各フィールドには以下の内容が表示されます。
- 最初のフィールド:前回のランレベル(変更前の状態を示す)
- 次のフィールド:現在のランレベル(現在稼働中の状態を示す)
例えば、出力がN 5
の場合、前回はランレベルがあらかじめ設定されていなかったことを意味し、現在はランレベル5(グラフィカルインターフェースが有効な状態)であることを示します。
出力例の解説
具体的な出力例を見てみると、次のような表示が得られます。
N 5
この例では、以下の点が解説されます。
N
は「None」の略で、前回のランレベルが存在しないか適用外であることを意味する5
は現在のランレベルを示し、通常はグラフィカル環境など特定のサービスが有効になっている状態を表す
このシンプルな出力により、システムの起動プロセスにおける状態変更を迅速に把握することが可能となります。
runlevelコマンドの利用シーン
起動状態の確認時の活用例
システムが起動した際に、意図したランレベルで起動しているかどうか確認するためにrunlevelコマンドが活用されます。
具体例としては以下のようなシーンが考えられます。
- サーバーやワークステーションの再起動後に、正しいランレベルでサービスが起動しているか確認する
- システム起動時に発生したエラーの原因調査のために、ランレベルの状態を確認する
これにより、期待する動作状態と実際の状態との乖離が発見され、早期に問題解決へと導く手助けとなります。
トラブルシュートでの利用事例
システム管理中に予期しない挙動が発生した場合、runlevelコマンドはトラブルシュートの有力な手段となります。
以下の事例が挙げられます。
- サービスが動作しない状況を調査するために、前回と現在のランレベルの差異を確認する
- システムが誤った起動状態に入っている場合、runlevelの出力から現状を把握し、問題箇所の特定に役立てる
こうした利用シーンにおいて、runlevelコマンドのシンプルな出力は迅速な原因特定を可能にし、システムの安定運用に貢献します。
runlevelコマンド利用上の注意事項
利用環境による挙動の違い
runlevelコマンドの挙動は、利用している環境によって若干異なる場合があります。
以下の点に注意してください。
- SysV init環境では、runlevelコマンドが正確な情報を提供する
- 最新のディストリビューションで採用されるsystemd環境では、runlevelは互換性のために用意されているが、出力があまり意味を持たない場合がある
- コンテナ環境や特殊な仮想環境では、ランレベルの概念自体が適用されないことがある
利用環境ごとの挙動を理解しながら、適切な場面で本コマンドを使用することが重要です。
他のシステム管理ツールとの比較ポイント
runlevelコマンドはシンプルな情報を提供する一方で、他のシステム管理ツールと併用することでより詳細な情報が得られる場合があります。
比較のポイントとして以下が挙げられます。
- runlevel:直近のランレベルの状態を簡単に確認可能なため、即時性が求められる状況に適している
systemctl get-default
:systemd環境で現在のターゲット(従来のランレベルに相当する)を確認できる- ログ管理ツール:システム起動ログと併せて、起動時の詳細なエラー情報や警告を確認可能
各ツールの特徴を把握し、状況に応じて最適な方法を選択することで、より効果的なシステム管理が実現されます。
まとめ
この記事では、runlevelの概要と意義、SysV init環境との連携について解説しています。
runlevelコマンドの基本的な構文や実行結果の読み取り方、前回と現在のランレベルの意味、さらに具体的な出力例も紹介しました。
また、起動時の状態確認やトラブルシュート時の利用事例、利用環境によって挙動が異なる点や他の管理ツールとの比較ポイントについても詳しく説明しています。