このページで解説している内容は、以下の YouTube 動画の解説で見ることができます。
【Linux】プロセス制御システム(systemd)ターゲット

プロセス制御システム(systemd)ターゲット
プロセス制御システム(systemd)は、以下の4部に分けて解説しています。
- プロセス制御システム(systemd)概要と操作
- プロセス制御システム(systemd)ターゲット
- プロセス制御システム(systemd)Unitファイル
- プロセス制御システム(systemd)サービスの起動と停止
ターゲットの概要
SysVinitでは、OSの動作モードをランレベルで表現していました。ランレベルは、システムの状態を0から6までの数値で表現し、各ランレベルは異なるシステム状態を示します。例えば、ランレベル0はシステムのシャットダウン、ランレベル3はマルチユーザー環境、ランレベル5はGUI環境、ランレベル6は再起動を示します。
一方、systemdでは、OSの動作モードをターゲット(target)と呼びます。ターゲットは、システムの特定の状態を定義するために使用されるUnitの一種です。ターゲットは他のUnitをグループ化し、特定のシステム状態を達成するために必要な依存関係を管理します。ターゲットは、SysVinitのランレベルに相当する概念ですが、より柔軟で詳細な制御が可能です。

主なsystemdのターゲット
ターゲット | 説明 | ランレベル |
---|---|---|
default.target | システムのデフォルトのターゲット。通常のシステム起動時に使用される。 | ー |
poweroff.target | システムをシャットダウンし、電源を切る。 | 0 |
rescue.target | レスキューモードで起動。基本的なシステム修復作業を行うための最小限の環境を提供。 | 1/S/s |
multi-user.target | マルチユーザーモードで起動。ネットワークサービスを含む、GUIなしの完全なテキストベースのシステム。(マルチユーザーモード / CUI) | 2/3/4 |
graphical.target | マルチユーザーモードで起動。グラフィカルユーザーインターフェース(GUI)を含む完全なシステム。(マルチユーザーモード / GUI) | 5 |
reboot.target | システムを再起動する。 | 6 |
emergency.target | 緊急モードで起動。システムの最小限の環境を提供し、他のほとんどのサービスを無効にする。rootユーザーのみログインできる状態。(緊急モード) | ー |
default.targetファイル
default.target
ファイルはリンクファイルであり、Linuxを起動したときのデフォルトのターゲットを決定します。このファイルのリンク先のターゲットファイルにより、システムの起動モードが決まります。
systemctlコマンド
systemctl
コマンドは、systemdで管理されるシステムおよびサービスマネージャを制御するためのコマンドです。
【構文】systemctl サブコマンド [対象Unit]
systemctlコマンドの主なサブコマンド
サブコマンド | 説明 | 例 |
---|---|---|
get-default | 現在のデフォルトターゲットを表示する。 | systemctl get-default |
set-default ターゲット名 | デフォルトターゲットを指定したターゲットに設定する。 | systemctl set-default multi-user.target |
isolate ターゲット名 | 指定したターゲットに切り替える。既存のターゲットと依存関係を終了し、新しいターゲットの依存関係を開始する。 | systemctl isolate rescue.target |
default.targetの操作
1.default.tarrgetファイルのリンク先を確認します。
・「systemctl get-default
」コマンドを実行します。
default.tarrgetのリンク先が「graphical.target」であることが確認できます。
user01@ubuntu-vm:~$ systemctl get-default
graphical.target
2.default.tarrgetファイルのリンク先を変更します。
・「systemctl set-default rescue.target
」コマンドを実行し、「systemctl get-default
」でターゲットが変更されていることを確認します。
default.tarrgetファイルのリンク先を「rescue」ターゲットに変更します。パスワードの入力が求められたら、パスワードを入力します。
user01@ubuntu-vm:~$ systemctl set-default rescue.target
Created symlink /etc/systemd/system/default.target → /lib/systemd/system/rescue.target.
user01@ubuntu-vm:~$ systemctl get-default
rescue.target
3.システムを再起動します。
ターゲットが変更されていることを確認するために、システムを再起動します。
・「shutdown -r now
」コマンドを実行します。
user01@ubuntu-vm:~$ shutdown -r now
4.rescue.targetでの起動
・「rootユーザー」のパスワードを入力します。

5.ターゲットをgraphical.targetに戻します。
・「systemctl set-default graphical.target
」コマンドを実行します。
root@ubuntu-vm:~# systemctl systemctl set-default graphical.target
実際の出力は下図となります。

・「systemctl get-default
」コマンドを実行します。
root@ubuntu-vm:~# systemctl get-default
graphical.target
・「exit
」コマンドを実行します。
graphical.targetで起動します。
root@ubuntu-vm:~# systemctl get-default graphical.target
実際の出力は下図となります。

6.GUIのログイン画面
GUIのログイン画面に戻ります。

まとめ

systemdでは、OSの動作モードをターゲットとして管理します。ターゲットはシステムの特定の状態を定義し、必要なサービスや依存関係をグループ化します。default.target
ファイルは、システム起動時のデフォルトのターゲットを決定するリンクファイルであり、systemctl
コマンドを使用して確認および変更が可能です。
ターゲット | 説明 |
---|---|
default.target | システムのデフォルトのターゲット。通常のシステム起動時に使用される。 |
poweroff.target | システムをシャットダウンし、電源を切る。 |
rescue.target | レスキューモードで起動。 |
multi-user.target | マルチユーザーモードで起動。 |
graphical.target | グラフィカルユーザーインターフェース(GUI)を含む完全なシステム。 |
reboot.target | システムを再起動する。 |
emergency.target | 緊急モードで起動。 |
サブコマンド | 説明 | 例 |
---|---|---|
get-default | 現在のデフォルトターゲットを表示する。 | systemctl get-default |
set-default ターゲット名 | デフォルトターゲットを指定したターゲットに設定する。 | systemctl set-default multi-user.target |
isolate ターゲット名 | 指定したターゲットに切り替える。 | systemctl isolate rescue.target |
systemdを理解し、適切に操作することで、システム管理の柔軟性と効率性が向上します。