CentOSのSystemctlでDataSpider Serverを起動・停止する方法

# 背景
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
```

```bash: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は試してない

# 参考
[systemdでの自動起動設定](https://qiita.com/shosan87/items/f65b43373b895edb2946)