SystemdのServiceのUnitを作成し、Systemdで制御可能にします。
記事の目次
Service用のUnitを作成する!
「etc/systemd/system」にUnitを作成します。以下は、Db2のインスタンスを起動する例になります。Db2は、systemd対応しているので、通常はsystemdより自動起動しますが、Db2の設定で自動起動を停止して、複数インスタンをインスタンス別にsystemdに登録して管理することを想定しています。シェルより、製品系の常時起動のプロセスを起動する場合は、Type=oneshotで、RemainAfterExit=yesを使用するとよいです。
vi /etc/systemd/system/db2inst1.service [Unit] Description=Db2 Instance - db2inst1 [Service] Type=oneshot RemainAfterExit=yes User=db2inst1 ExecStart=/home/ubuusr01/bin/start_db2inst1.sh ExecStop=/home/ubuusr01/bin/stop_db2inst1.sh [Install] WantedBy=multi-user.target
Service用のUnitファイルを認識させる!
再起動してもよいですが、以下のコマンドで再起動せずにsystemdに新規に作成したUnitを認識させることができます。
$ sudo systemctl daemon-reload $ sudo systemctl list-unit-files | grep db2inst1 db2inst1.service disabled
Serviceをの起動と停止を行う!
Serviceの起動と停止を行います。restartのオプションを使用して再起動することもできます。
$ sudo systemctl status db2inst1 $ sudo systemctl start db2inst1 $ sudo systemctl status db2inst1 $ sudo systemctl stop db2inst1 $ sudo systemctl status db2inst1
Serviceを自動起動に設定する!
Serviceを自動起動に設定します。
$ sudo systemctl enable db2inst1 Created symlink /etc/systemd/system/multi-user.target.wants/db2inst1.service → /etc/systemd/system/db2inst1.service. $ sudo systemctl is-enabled db2inst1 enabled
再起動して、Serviceが自動起動していることを確認します。
おわりに
ServiceのUnitを作成して、multi-user.targetに登録しました。Systemdに登録すれば自動起動の設定を行うこともできます。
関連記事
関連書籍(Amazon)