Atlassian Jira(以下Jira)をはじめとするアトラシアン製品は、インストーラーが作成する自動起動のスクリプトは init.d
ベースであり、systemdで起動する場合は自分でユニット定義を作成する必要があります。
ユニットを定義する /etc/systemd/system/jira.service
ならびに /etc/systemd/system/jira.env
の例は、以下の通りとなります。
jiraをsystemdで起動するときのユニット設定のサンプル
(2018/9/20追記) 当初ユニット定義を
[Unit] Description=The JIRA Server After=syslog.target After=network.target
としていましたが、Amazon EC2上で起動した時に、cloud-initによる初期化処理の前にデーモンが起動する不具合があったため、修正しました。
(追記ここまで)
ユニット定義内の記述については、以下の通りとなります。
- Jiraのインストールディレクトリーは、
/opt/atlassian/jira/current
であるものとして、記述しています。 JAVA_HOME
などの起動時に指定が必要な環境変数を、jira.env
で指定します。Bitbcuket等では起動シーケンスの関係でJVMのヒープ設定等をここに書く場合があるため、外だしして記述するようにしています。PIDFile
の指定で、systemdがJiraのjavaプロセスを把握できるようにします。User
ならびにGroup
はJiraの起動ユーザー/グループの指定です。KillMode=none
はsystemctl stop
でJiraのプロセスが停止しなかった場合にsystemdは処理をスキップすることの指定です。停止しなかった場合は手動でプロセスを停止する必要があります。- システムロケールは
ja_JP.UTF-8
である前提です。そうでない場合はjira.env
で環境変数LANG
を指定します。
サービスの登録は、以下のように行います。
sudo systemctl daemon-reload sudo systemctl enable jira sudo systemctl start jira
sudo systemctl status jira
を実行したときに以下のように、Active: active (running)
と記述されれば、サービスの組み込みは成功しています。
● jira.service - The JIRA Server Loaded: loaded (/etc/systemd/system/jira.service; enabled; vendor preset: disabled) Active: active (running) since 火 2018-02-27 12:18:59 JST; 1min 14s ago Process: 5163 ExecStop=/opt/atlassian/jira/current/bin/stop-jira.sh (code=exited, status=0/SUCCESS) Process: 5284 ExecStart=/opt/atlassian/jira/current/bin/start-jira.sh (code=exited, status=0/SUCCESS) Main PID: 5315 (java) CGroup: /system.slice/jira.service ¶ 5315 /usr/java/default/bin/java -Djava.util.logging.config.file=/opt/atlassian/jira/curre... 2月 27 12:18:59 jira.local start-jira.sh[5284]: If you encounter issues starting or stopping JIRA...ide 2月 27 12:18:59 jira.local start-jira.sh[5284]: Using JIRA_HOME: /var/atlassian/application...ira 2月 27 12:18:59 jira.local start-jira.sh[5284]: Server startup logs are located in /opt/atlassian...out 2月 27 12:18:59 jira.local start-jira.sh[5284]: Using CATALINA_BASE: /opt/atlassian/jira/current 2月 27 12:18:59 jira.local start-jira.sh[5284]: Using CATALINA_HOME: /opt/atlassian/jira/current 2月 27 12:18:59 jira.local start-jira.sh[5284]: Using CATALINA_TMPDIR: /opt/atlassian/jira/current/temp 2月 27 12:18:59 jira.local start-jira.sh[5284]: Using JRE_HOME: /usr/java/default 2月 27 12:18:59 jira.local start-jira.sh[5284]: Using CLASSPATH: /opt/atlassian/jira/curren...jar 2月 27 12:18:59 jira.local start-jira.sh[5284]: Using CATALINA_PID: /opt/atlassian/jira/curren...pid 2月 27 12:18:59 jira.local systemd[1]: Started The JIRA Server. Hint: Some lines were ellipsized, use -l to show in full.
参考
Run Confluence as a systemd service on linux - Atlassian Documentation