Systemdでtargetを切り替えます。targetを切り替えることで、起動しているUnitを制御して、システムの起動状態を変えることができます。
記事の目次
ターゲットの確認
「/lib/systemd/system」で、末尾がtagetとなっているものがシステムで定義されているターゲットです。
$ ls -l /lib/systemd/system
ユーザで定義するターゲットは、「/etc/systemd/system」に配置します。
$ ls -l /etc/systemd/system
基本的なターゲット
通常使用する基本的なターゲットを確認します。
- multi-user.target:GUIを起動しません。(サーバでのデフォルトターゲット)
- graphical.target:GUIを起動します。(デスクトップでのデフォルトターゲット)
- rescue.target:トラブル時の対応用で最小限のUnitのみ起動します。
- poweroff.target:電源をOFFします。
- reboot.target:システムを再起動します。
- halt.target:システムを停止します。電源OFFはしません。
- suspend.target:サスペンドします。
- hibernate.target:システムをハイバネートします。
- hybrid-sleep.target:システムをハイブリッドスリープします。
デフォルトのターゲットを確認する。
デフォルトのターゲットを確認します。デフォルトのターゲットは起動時の状態を指定します。デスクトップでは、「graphical.target」になってっています。
$ sudo systemctl get-default graphical.target
ターゲットを切り替える。
ターゲットを切り替えます。GUIを停止するため、multi-user.targetに着替えます。
$ sudo systemctl isolate multi-user.target
実行すると、コマンドラインのログインプロンプトが表示されます。ログインして、以下のコマンドを実行するとGUIに戻ります。
$ sudo systemctl isolate graphical.target
トラブルが起きたときは、以下のコマンドでレスキューモードに変更して障害対応を行いましょう。
$ sudo systemctl isolate rescue.target
デフォルトのターゲットを変更する。
GUIをインストールしたが、サーバとして利用することにしたため、デフォルトターゲットを「graphical.target」から「multi-user.taget」に変更してみましょう。
$ 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.
再起動して、multi-user.targetで起動することを確認します。
おわりに
Systemdでは、ターゲットを利用してシステムの状態を定義して切り替えることができます。電源制御についてもターゲットで制御します。
関連記事
関連書籍(Amazon)