Systemdで独自のtargetを作成する!

Systemdで独自のtargetを作成して、システムのServiceの起動状態を切り替えられるようにしてみましょう。

独自のtargetを作成する!

現用系と待機系の構成をもつシステムを想定して、active.targetとstandby.targetを作成します。どちらも、multi-user.targetをベースに起動するUnitを定義してみたいと思います。

現用系のtargetを作成する!

現用系のtargetとして、active.targetを作成します。

$ sudo vi /etc/systemd/system/active.target
[Unit]
Description=Active System target
Requires=multi-user.target
Conflicts=rescue.service rescue.target
After=multi-user.target rescue.service rescue.target
AllowIsolate=yes

待機系のtargetを作成する!

現用系のtargetとして、standby.targetを作成します。

$ sudo vi /etc/systemd/system/standby.target
[Unit]
Description=Standby System target
Requires=multi-user.target
Conflicts=rescue.service rescue.target
After=multi-user.target rescue.service rescue.target
AllowIsolate=yes

Unitを作成したtargetに登録する!

Unitファイルを修正して、作成したtargetに登録します。UnitファイルのInstallセクションのWantedByに登録するターゲットを指定します。以下のようにブランクで区切って複数のtargetに登録することもできます。

[Install]
WantedBy=active.target standby.target

Unitファイルを修正したら、Serviceをenableします。既ににmulti-user.target等に登録済みであれば、一旦、Serviceをdisableにしてからenableします。登録を完了したら、以下のコマンドで切り替えてみましょう。

$ sudo systemctl isolate active.target
$ sudo systemctl isolate standby.target

おわりに

独自のターゲットの作成はとても簡単です。目的に合わせてtargetを作成することによって、Unitの起動状態を制御することができるようになります。

関連記事

関連書籍(Amazon)

N/A