Linuxのランレベルとsystemdターゲットを理解する

  • URLをコピーしました!
目次

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ターゲットは、システムの動作モードを柔軟に管理するための仕組みです。
初心者の方でも実際にコマンドを打ちながら学ぶことで、システム管理の基礎を理解できます。

    目次