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)