Systemdターゲット
systemdターゲットが実行レベルにマップされる方法、およびシステムの状態を検査または変更する方法について説明します。
ターゲットを使用することで、特定の目的に必要なサービスのみを起動するようにsystemdを制御できます。
たとえば、システムのブート時にグラフィカル・ユーザー・インタフェースが使用されないように、本番サーバーでデフォルトのターゲットをmulti-user.targetに設定します。トラブルシューティングまたは診断を実行する必要がある場合は、ターゲットをrescue.targetに設定することを検討してください。この場合、最小サービス数を実行するためにシステムにログオンできるのはrootのみです。
実行レベルごとに、systemdで停止または開始するサービスを定義します。たとえば、systemdはmulti-user.targetのネットワーク・サービスを起動し、graphical.targetのX Windowシステムを開始し、rescue.targetの両方のサービスを停止します。
「システム状態ターゲットおよび等価実行レベル・ターゲット」に、よく使用されるシステム状態ターゲットおよび等価実行レベル・ターゲットを示します。
|
システム状態ターゲット |
等価実行レベル・ターゲット |
説明 |
|---|---|---|
|
|
|
ネットワーキングおよびディスプレイ・マネージャを使用して、マルチユーザー・システムを設定します。 |
|
|
|
ネットワーキングを使用して非グラフィック・マルチユーザー・システムを設定します。 |
|
|
|
システムのシャットダウンと電源をオフにします。 |
|
|
|
システムを停止して再起動します。 |
|
|
|
レスキュー・シェルを設定します。 |
runlevel*ターゲットはシンボリック・リンクとして実装されます。
詳細は、systemd.target(5)マニュアル・ページを参照してください。
デフォルトおよびアクティブなシステム状態ターゲットの表示
システムのデフォルトターゲットを照会し、systemctlを使用してすべてのアクティブターゲットを一覧表示する方法を示します。
デフォルトのシステム状態ターゲットを表示するには、systemctl get-defaultコマンドを使用します。
systemctl get-default
graphical.target
システムでアクティブなターゲットを表示するには、systemctl list-units --type targetコマンドを使用します:
systemctl list-units --type target [--all]
UNIT LOAD ACTIVE SUB DESCRIPTION
basic.target loaded active active Basic System
cryptsetup.target loaded active active Local 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-online.target loaded active active Network is Online
network-pre.target loaded active active Network (Pre)
network.target loaded active active Network
nfs-client.target loaded active active NFS client services
nss-user-lookup.target loaded active active User and Group Name Lookups
paths.target loaded active active Paths
remote-fs-pre.target loaded active active Remote File Systems (Pre)
remote-fs.target loaded active active Remote File Systems
rpc_pipefs.target loaded active active rpc_pipefs.target
rpcbind.target loaded active active RPC Port Mapper
slices.target loaded active active Slices
sockets.target loaded active active Sockets
sound.target loaded active active Sound Card
sshd-keygen.target loaded active active sshd-keygen.target
swap.target loaded active active Swap
sysinit.target loaded active active System Initialization
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.
24 loaded units listed. Pass --all to see loaded but inactive units, too.
To show all installed unit files use 'systemctl list-unit-files'.
graphicalターゲットがアクティブなシステムの出力は、このターゲットがネットワーキングおよび音声機能をサポートするため、networkおよびsoundを含むその他のアクティブなターゲットに依存していることを示しています。
リストに非アクティブなターゲットを含めるには、--allオプションを使用します。
詳細は、systemctl(1)およびsystemd.target(5)の各マニュアル・ページを参照してください。
デフォルトおよびアクティブなシステム状態ターゲットの変更
システムの実行中に、デフォルトのブートターゲットを切り替え、別のターゲットを分離する方法について説明します。
systemctl set-defaultコマンドを使用して、デフォルトのシステム状態ターゲットを変更します。
sudo systemctl set-default multi-user.target
Removed /etc/systemd/system/default.target.
Created symlink /etc/systemd/system/default.target → /usr/lib/systemd/system/multi-user.target
このコマンドはターゲットをデフォルト・ターゲットがリンクしているターゲットに変更しますが、システムの状態は変更されません。
現在のアクティブなシステム・ターゲットを変更するには、次のようにsystemctl isolateコマンドを使用します:
sudo systemctl isolate multi-user.target
詳細は、systemctl(1)マニュアル・ページを参照してください。