Linuxでシステム開始/停止時に、インターシステムズ製品を自動起動/停止することはできますか?
これはInterSystems FAQ サイトの記事です。
IRISのサービスを /usr/lib/systemd/system/iris.service に作成し systemctl ユーティリティにて設定を行います。
手順は以下になります。 ※ 作業は root ユーザまたは root 権限を持つユーザで行ってください。
1. IRISの自動起動・自動停止のスクリプトファイル「irisstartstop」を作成します。
irisstartstop
Description=Intersystems IRIS
[Service]
Type=forking
ExecStart=/intersystems/IRIS/bin/iris start IRIS
ExecStop=/intersystems/IRIS/bin/iris stop IRIS quietly
RemainAfterExit=yes
[Install]
WantedBy=multi-user.target
※お使いの環境にあわせて編集してください。基本的に編集が必要なのは [Service] の箇所になります。
ExecStart、ExecStop:IRIS はインスタンス名、パスは <インストールフォルダ>/bin/iris を指定します。
2. 1 のIRIS起動停止スクリプト irisstartstop を /usr/lib/systemd/system へコピーします。
(注意)WindowsマシンからFTP転送を行う場合は、Binaryモードを使用してください。
3. 以下のようにファイルの属性を設定します。
# ls -l /usr/lib/systemd/system/iris.service
-rwxr-xr-x 1 root root 326 Apr 1 01:56 /usr/lib/systemd/system/iris.service
4. IRIS の自動起動/停止をシステムに登録します
systemctl ユーティリティにてIRISの自動起動の設定を行います。
# # iris.service が“enabled”になっていることを確認します。
iris.service enabled
以上で設定は完了です。マシンの起動/停止 もしくは systemctl [start|stop] iris.service コマンドで動作を確認してください。
【注記】
OSシャットダウン時には明示的なInterSystems製品の停止を推奨しております。
OSシャットダウン時にInterSystems製品がそれを検出できた場合、messages.log に次のように記録して緊急シャットダウンを試みます。
Operating System shutdown! InterSystems IRIS performing fast shutdown.
次回起動時には以下のようなエラーが記録されます。
Previous system shutdown was abnormal, system forced down or crashed
もし、この緊急シャットダウンが完了する前にOSのシャットダウンが進行してしまうと、緊急シャットダウンが間に合わず、データベースファイルへの書き込みやトランザクションのロールバックが正常に行われない場合もあります。
もちろん、次回開始時にWIJおよびジャーナルファイルを使用した回復は行われますが、極力そのような状況にならないように明示的なシャットダウンを行うのが安全です。