背景
DataSpider ServistaのLinux版に自動起動スクリプトが無かったのでSystemdに登録してsystemctlでstart、stopできるようにした。
DataSpider付属の起動・停止スクリプト
- $DATASPIDER_HOME/server/bin/DataSpiderServer
- $DATASPIDER_HOME/server/bin/Shutdown
付属のスクリプトで起動すると下記のような標準出力が出たままになり、Ctrl+Cを押下してしまうと、終了処理が行われずにプロセスがkillされてしまうので、不都合があった。(このまま起動しようとするとSQLエラーとなる)
※マニュアルにはその場合、Shutdownスクリプトを使ってねと書いてある。
--- |INFO|モジュール[ScriptRunner Container]のサービスを開始しています。
--- |INFO|モジュール[DataProcessingComponent Manager]のサービスを開始しています。
--- |INFO|モジュール[DataProcessingComponent Manager]のサービスを開始しました。
--- |INFO|モジュール[ScriptRunner Container]のサービスを開始しました。
--- |INFO|システムのサービスを開始しました。
--- |NOTICE|DataSpider Serverを正常に起動しました。
--- |INFO|*****************************************************************
ただのshellでもよかったんだけど、せっかくCentOS7のSystemdがあるんだからsystemctlでstart/stopしたいよね。
環境
CentOS7
DataSpider Servista 4.1 Linux 64bit版
前提
- CentOSインストール済み
- vncserverインストール済み
- JDKインストール済み
- Apache、Tomcatインストール済み
- DataSpiderインストール済み
手順
Unitファイルの作成
$ cd /etc/systemd/system/
$ sudo vi DataSpiderServer.service
DataSpiderServer.service
# *****************************************************************
# *****************************************************************
# *********************** DataSpider Server ***********************
# *****************************************************************
# *****************************************************************
[Unit]
Description=DataSpider Server
[Service]
ExecStart=/var/DataSpiderServista/server/bin/DataSpiderServer
ExecStop=/var/DataSpiderServista/server/bin/Shutdown
[Install]
WantedBy=multi-user.target
これだけ
動作確認
登録前
$ sudo systemctl list-unit-files --type=service | grep DataSpiderServer
DataSpiderServer.service disabled
登録
$ sodo systemctl enable DataSpiderServer.service
Created symlink from /etc/systemd/system/multi-user.target.wants/DataSpiderServer.service to /etc/systemd/system/DataSpiderServer.service.
登録後
disabledがenabledになる
$ sudo systemctl list-unit-files --type=service | grep DataSpiderServer
DataSpiderServer.service enabled
起動前
$ sudo systemctl status DataSpiderServer.service
● DataSpiderServer.service - DataSpider Server
Loaded: loaded (/etc/systemd/system/DataSpiderServer.service; enabled; vendor preset: disabled)
Active: inactive (dead)
起動
$ sudo systemctl start DataSpiderServer.service
起動後status
$ sudo systemctl status DataSpiderServer.service
● DataSpiderServer.service - DataSpider Server
Loaded: loaded (/etc/systemd/system/DataSpiderServer.service; enabled; vendor preset: disabled)
Active: active (running) since 木 2017-10-12 12:33:58 JST; 8s ago
Main PID: 20420 (java)
CGroup: /system.slice/DataSpiderServer.service
└─20420 /var/DataSpiderServista/server/bin/../../jre/bin/java -server -Djava.ext.dirs=../system/boot/ext:../../jre/lib/ext -Djava.endorsed.di...
(log省略)
停止
$ sudo systemctl stop DataSpiderServer.service
停止後status
$ sudo systemctl status DataSpiderServer.service
● DataSpiderServer.service - DataSpider Server
Loaded: loaded (/etc/systemd/system/DataSpiderServer.service; enabled; vendor preset: disabled)
Active: failed (Result: exit-code) since 木 2017-10-12 12:34:37 JST; 8s ago
Process: 20559 ExecStop=/var/DataSpiderServista/server/bin/Shutdown (code=exited, status=0/SUCCESS)
Process: 20420 ExecStart=/var/DataSpiderServista/server/bin/DataSpiderServer (code=exited, status=143)
Main PID: 20420 (code=exited, status=143)
(log省略)
※disableは試してない