Systemdターゲット

systemdターゲットが実行レベルにマップされる方法、およびシステムの状態を検査または変更する方法について説明します。

ターゲットを使用することで、特定の目的に必要なサービスのみを起動するようにsystemdを制御できます。

たとえば、システムのブート時にグラフィカル・ユーザー・インタフェースが使用されないように、本番サーバーでデフォルトのターゲットをmulti-user.targetに設定します。トラブルシューティングまたは診断を実行する必要がある場合は、ターゲットをrescue.targetに設定することを検討してください。この場合、最小サービス数を実行するためにシステムにログオンできるのはrootのみです。

実行レベルごとに、systemdで停止または開始するサービスを定義します。たとえば、systemdmulti-user.targetのネットワーク・サービスを起動し、graphical.targetのX Windowシステムを開始し、rescue.targetの両方のサービスを停止します。

「システム状態ターゲットおよび等価実行レベル・ターゲット」に、よく使用されるシステム状態ターゲットおよび等価実行レベル・ターゲットを示します。

システム状態ターゲットおよび等価実行レベル・ターゲット

システム状態ターゲット

等価実行レベル・ターゲット

説明

graphical.target

runlevel5.target

ネットワーキングおよびディスプレイ・マネージャを使用して、マルチユーザー・システムを設定します。

multi-user.target

runlevel2.target

runlevel3.target

runlevel4.target

ネットワーキングを使用して非グラフィック・マルチユーザー・システムを設定します。

poweroff.target

runlevel0.target

システムのシャットダウンと電源をオフにします。

reboot.target

runlevel6.target

システムを停止して再起動します。

rescue.target

runlevel1.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)マニュアル・ページを参照してください。