Linuxのランレベルとsystemdターゲットとは?
Linuxシステムで、ランレベルとsystemdターゲットは、システムの動作モードを定義する重要な設定です。
システムの稼働状態や起動プロセスを管理するために用いられ、
特定のモード(例えば、マルチユーザーモードやグラフィカルモード)を設定することで、
効率的なシステム運用を実現します。
Linuxの歴史的背景を踏まえると、かつてはSysVinitというシステムでランレベルを管理していましたが、
現在では多くのディストリビューションがsystemdに移行しています。
これにより、ランレベルの代わりにターゲットが用いられるようになり、より柔軟な設定と管理が可能になりました。
ランレベルの詳細と役割
SysVinitシステムでは、システムの状態を番号で表すランレベルが用いられていました。
各ランレベルはシステムの動作モードを示し、必要なサービスやプロセスを起動・停止させるために利用されます。
以下は各ランレベルの概要です:
- ランレベル0: システムをシャットダウン(システム電源をオフにする)
- ランレベル1: シングルユーザーモード(管理者によるメンテナンス用)
- ランレベル2: マルチユーザーモード(ネットワーク機能なし)
- ランレベル3: マルチユーザーモード(ネットワークあり、GUIなし)
- ランレベル4: カスタム設定(未使用のため、ユーザーが設定可能)
- ランレベル5: マルチユーザーモード(ネットワークあり、GUIあり)
- ランレベル6: システム再起動
systemdターゲットとは? ランレベルとの違い
systemdにおいては、ランレベルの代わりにターゲットという仕組みが導入されています。
ターゲットは、関連するユニット(サービス、ソケット、デバイスなど)をグループ化し、
システムの特定の状態に移行させるための設定です。
たとえば、graphical.target
はGUIを提供するためのサービスを含んでおり、multi-user.target
はマルチユーザーモードに必要なネットワークサービスなどを含んでいます。
systemdではこのターゲットを使用して、システムの動作モードを柔軟に変更できます。
主なターゲットとその役割は以下の通りです:
- poweroff.target: システムをシャットダウンする
- rescue.target: シングルユーザーモード(旧ランレベル1と同等)
- multi-user.target: マルチユーザーモード(旧ランレベル3と同等)
- graphical.target: グラフィカルインターフェースを提供(旧ランレベル5と同等)
- reboot.target: システムを再起動する(旧ランレベル6と同等)
現在のターゲットの確認方法と変更方法
現在のターゲットを確認する
現在のsystemdターゲット、すなわちシステムの動作モードを確認するには、以下のコマンドを実行します:
systemctl get-default
このコマンドを実行すると、現在のデフォルトターゲットが表示されます。
たとえば、multi-user.target
が表示されれば、システムはCLIベースのマルチユーザーモードで動作しています。
ターゲットの一時的な変更
現在のシステムの動作モードを一時的に変更する場合は、以下のコマンドを使用します。
たとえば、GUIのgraphical.target
からCLIのmulti-user.target
に切り替えたい場合:
sudo systemctl isolate multi-user.target
このコマンドにより、現在のターゲットを即座に変更できます。
ただし、再起動すると元のデフォルトターゲットに戻ります。
デフォルトターゲットの設定変更
再起動後も指定したターゲットでシステムが起動するように設定するには、以下のコマンドを使用します。
sudo systemctl set-default multi-user.target
これにより、次回の起動時にはmulti-user.target
(CLIモード)がデフォルトで適用されます。
シャットダウンや再起動の操作
systemdの環境では、システムのシャットダウンや再起動もターゲットを通じて管理できます。
シャットダウン(システムを完全に停止):
sudo systemctl poweroff
再起動(システムを再起動する):
sudo systemctl reboot
これらのコマンドを使うことで、ユーザーは手軽にシステムの停止や再起動が可能です。
systemdターゲットの関連ファイル
systemdのターゲットやサービスに関連する設定ファイルは、主に以下のディレクトリに保存されています。
- /usr/lib/systemd/system/: デフォルトのターゲットファイルやユニットファイルが格納されている
- /etc/systemd/system/: ユーザーによるカスタマイズが反映されるディレクトリ
- /run/systemd/system/: 一時的な設定ファイルが保存されるディレクトリ
特定のターゲットファイルを編集することで、システムの動作モードに対する細かい調整が可能です。
旧来のランレベルコマンドとの互換性
古いシステムで使用されていたrunlevel
コマンドは、systemd環境でも引き続きサポートされています。
現在のランレベルを確認するには、以下のコマンドを使います:
runlevel
また、systemdは旧来のランレベルコマンドと互換性を持たせているため、init 3
と実行すればmulti-user.target
が呼び出されます。
新しいシステムではsystemctl
コマンドが推奨されますが、
互換性を考慮してこれらのコマンドも知っておくと便利です。
まとめ
Linuxのランレベルとsystemdターゲットは、システムの動作モードを柔軟に管理するための仕組みです。
初心者の方でも実際にコマンドを打ちながら学ぶことで、システム管理の基礎を理解できます。