10.3. systemd ターゲットでの作業
.target ファイル拡張子で終わり、その唯一の目的は依存関係の連鎖で他の systemd units をグループ化することです。たとえば、グラフィカルセッションの開始に使用される graphical.target ユニットは、GNOME Display Manager (gdm.service) や Accounts Service (accounts-daemon.service) といったシステムサービスを開始するとともに、multi-user.target ユニットもアクティブ化します。同様に multi-user.target ユニットは、NetworkManager (NetworkManager.service) や D-Bus (dbus.service) といった他の必須のシステムサービスを開始して、かつ basic.target という別の target unit をアクティブ化します。
表10.6 SysV ランレベルと systemd ターゲットの比較
| ランレベル | ターゲットユニット | 詳細 |
|---|---|---|
0 | runlevel0.target、poweroff.target | システムをシャットダウンし、電源を切ります。 |
1 | runlevel1.target、rescue.target | レスキューシェルを設定します。 |
2 | runlevel2.target、multi-user.target | 非グラフィカルな複数ユーザーシステムを設定します。 |
3 | runlevel3.target、multi-user.target | 非グラフィカルな複数ユーザーシステムを設定します。 |
4 | runlevel4.target、multi-user.target | 非グラフィカルな複数ユーザーシステムを設定します。 |
5 | runlevel5.target、graphical.target | グラフィカルな複数ユーザーシステムを設定します。 |
6 | runlevel6.target、reboot.target | システムをシャットダウンして再起動します。 |
systemctl ユーティリティーを使用します。runlevel および telinit の各コマンドはシステムで利用可能なままで、期待どおりに機能しますが、これらが含まれているのは互換性が目的であり、使用は避けてください。
表10.7 SysV init コマンドと systemctl の比較
| 古いコマンド | 新しい コマンド | 詳細 |
|---|---|---|
runlevel | systemctl list-units --type target | 現在読み込まれているターゲットユニットを表示します。 |
telinit runlevel | systemctl isolate name.target | 現在のターゲットを変更します。 |
10.3.1. デフォルトターゲットの表示
systemctl get-default/etc/systemd/system/default.target にあるシンボリックリンクを解決し、その結果を表示します。デフォルトのターゲットの変更方法については、「デフォルトターゲットの変更」 を参照してください。現在読み込まれているターゲットユニットを一覧表示する方法については、「現在のターゲットの表示」 を参照してください。
例10.10 デフォルトターゲットの表示
~]$ systemctl get-default
graphical.target10.3.2. 現在のターゲットの表示
systemctl list-units --type targetUNIT) を表示し、その後にユニットが読み込み済みかどうか (LOAD)、高レベル (ACTIVE) および低レベル (SUB) のユニットのアクティベーション状態、および簡単な説明 (DESCRIPTION) が続きます。
systemctl list-units コマンドはアクティブなユニットのみを表示します。状態に関係なくすべての読み込み済みユニットを表示したい場合は、--all または -a のオプションを付けてコマンドを実行します。
systemctl list-units --type target --all例10.11 現在のターゲットの表示
~]$ systemctl list-units --type target
UNIT LOAD ACTIVE SUB DESCRIPTION
basic.target loaded active active Basic System
cryptsetup.target loaded active active Encrypted Volumes
getty.target loaded active active Login Prompts
graphical.target loaded active active Graphical Interface
local-fs-pre.target loaded active active Local File Systems (Pre)
local-fs.target loaded active active Local File Systems
multi-user.target loaded active active Multi-User System
network.target loaded active active Network
paths.target loaded active active Paths
remote-fs.target loaded active active Remote File Systems
sockets.target loaded active active Sockets
sound.target loaded active active Sound Card
spice-vdagentd.target loaded active active Agent daemon for Spice guests
swap.target loaded active active Swap
sysinit.target loaded active active System Initialization
time-sync.target loaded active active System Time Synchronized
timers.target loaded active active Timers
LOAD = Reflects whether the unit definition was properly loaded.
ACTIVE = The high-level unit activation state, i.e. generalization of SUB.
SUB = The low-level unit activation state, values depend on unit type.
17 loaded units listed. Pass --all to see loaded but inactive units, too.
To show all installed unit files use 'systemctl list-unit-files'.10.3.3. デフォルトターゲットの変更
root でシェルプロンプトに以下を入力します。
systemctl set-default name.targetmulti-user) 置き換えます。このコマンドは、/etc/systemd/system/default.target ファイルを /usr/lib/systemd/system/name.target へのシンボリックリンクで置き換えます。ここでの name は、使用するターゲットユニット名になります。現在のターゲットの変更方法については、「現在のターゲットの変更」 を参照してください。現在読み込まれているターゲットユニットを一覧表示する方法については、「現在のターゲットの表示」 を参照してください。
例10.12 デフォルトターゲットの変更
multi-user.target ユニットを使用するよう設定するには、root で以下のコマンドを使用します。
~]# systemctl set-default multi-user.target
rm '/etc/systemd/system/default.target'
ln -s '/usr/lib/systemd/system/multi-user.target' '/etc/systemd/system/default.target'10.3.4. 現在のターゲットの変更
root として以下を入力します。
systemctl isolate name.targetmulti-user) 置き換えます。このコマンドは、name という名前の付いたターゲットユニットとすべての依存ユニットを開始し、即座にその他すべてを停止します。デフォルトのターゲットの変更方法については、「デフォルトターゲットの変更」 を参照してください。現在、読み込み済みのターゲットユニットすべてを一覧表示する方法については、「現在のターゲットの表示」 を参照してください。
例10.13 現在のターゲットの変更
multi-user.target ユニットに変更するには、root で以下のコマンドを使用します。
~]# systemctl isolate multi-user.target10.3.5. レスキューモードへの変更
root でシェルプロンプトに以下を入力します。
systemctl rescuesystemctl isolate rescue.target と似ていますが、現在システムにログインしているすべてのユーザーに通知メッセージも送信します。systemd がこのメッセージを送信しないようにするには、このコマンドに --no-wall オプションを付けて実行します。
systemctl --no-wall rescue例10.14 レスキューモードへの変更
root で以下のコマンドを実行します。
~]# systemctl rescue
Broadcast message from root@localhost on pts/0 (Fri 2013-10-25 18:23:15 CEST):
The system is going down to rescue mode NOW!10.3.6. 緊急モードへの変更
root でシェルプロンプトに以下を入力します。
systemctl emergencysystemctl isolate emergency.target と似ていますが、現在システムにログインしているすべてのユーザーに通知メッセージも送信します。systemd がこのメッセージを送信しないようにするには、このコマンドに --no-wall オプションを付けて実行します。
systemctl --no-wall emergency例10.15 緊急モードへの変更
root で以下のコマンドを実行します。
~]# systemctl --no-wall emergency
Where did the comment section go?
Red Hat's documentation publication system recently went through an upgrade to enable speedier, more mobile-friendly content. We decided to re-evaluate our commenting platform to ensure that it meets your expectations and serves as an optimal feedback mechanism. During this redesign, we invite your input on providing feedback on Red Hat documentation via the discussion platform.