1. 程式人生 > >JIRA 解壓版和Tomcat啟動/停止指令碼衝突問題Linux(Centos7)

JIRA 解壓版和Tomcat啟動/停止指令碼衝突問題Linux(Centos7)

前言

由於專案管理需要,欲在伺服器上搭建一個敏捷開發工具JIRA服務,這裡我選擇的是解壓版的JIRA

發文前最新版本:atlassian-jira-software-7.12.1.tar.gz 內建Tomcat

問題描述

配置完成後(埠預設8080,建議修改下埠號,方法與修改Tomcat埠類似,修改解壓目錄下/conf/server.xml檔案)

第一次啟動是成功的。今天發生錯誤,需要重啟JIRA的時候,發現輸入./stop-jira.sh時,它卻把伺服器上的一個Tomcat給停止掉了,而JIRA服務本身沒有影響。

猜想,解壓版的JIRA是內建Tomcat的,會不會是兩個Tomcat發生衝突了呢?

解決辦法

於是,對JIRA的相關檔案進行修改,新增環境變數

具體如下:

JIRA內建Tomcat服務的相關檔案修改

  • 修改pid配置路徑(預設會和Tomcat衝突)

cd到JIRA解壓的bin目錄下,找到setenv.sh檔案,vim編輯

將這裡面的CATALINA_BASE和CATALINA_HOME改成CATALINA2_BASECATALINA2_HOME

博主的伺服器是已經裝了兩個Tomcat所以後面加的數字改成了3,這個不影響,只要和後面統一就可以。這裡推薦大家可以使用相關工具進行批量修改,以免遺漏。

  • 修改catalina.sh指令碼

同樣cd到JIRA解壓的bin目錄下,找到catalina.sh檔案,vim編輯

和上步操作類似,將這裡面的CATALINA_BASE和CATALINA_HOME改成CATALINA2_BASECATALINA2_HOME

  • 環境變數配置

輸入命令:

vim /etc/profile

修改之前:JAVA,Tomcat的環境變數配置(本機裝了兩個Tomcat服務)

###JAVA ###
export JAVA_HOME=/usr/local/jdk1.8.0_181
export JRE_HOME=/usr/local/jdk1.8.0_181/jre
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/jre/lib/tools.jar:$JRE_HOME/lib:$CLASSPATH
export PATH=$PATH:$JAVA_HOME/bin:$PATH

###Tomcat 8.5###
export CATALINA_HOME=/usr/local/tomcat8.5
export CATALINA_BASE=/usr/local/tomcat8.5
export PATH=$PATH:$CATALINA_BASE/bin:$PATH

###Tomcat 9.0###
export CATALINA2_HOME=/usr/local/tomcat9.0
export CATALINA2_BASE=/usr/local/tomcat9.0
export PATH=$PATH:$CATALINA2_BASE/bin:$PATH

修改之後:新增JIRA的環境變數配置,這裡的CATALINA3_HOME和CATALINA3_BASE的值為JIRA的解壓根目錄,與上文對應,你們在操作的時候應該為CATALINA2_HOMECATALINA2_BASE


###JAVA ###
export JAVA_HOME=/usr/local/jdk1.8.0_181
export JRE_HOME=/usr/local/jdk1.8.0_181/jre
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/jre/lib/tools.jar:$JRE_HOME/lib:$CLASSPATH
export PATH=$PATH:$JAVA_HOME/bin:$PATH

###Tomcat 8.5###
export CATALINA_HOME=/usr/local/tomcat8.5
export CATALINA_BASE=/usr/local/tomcat8.5
export PATH=$PATH:$CATALINA_BASE/bin:$PATH

###Tomcat 9.0###
export CATALINA2_HOME=/usr/local/tomcat9.0
export CATALINA2_BASE=/usr/local/tomcat9.0
export PATH=$PATH:$CATALINA2_BASE/bin:$PATH

###Jira 7.12.1###
export CATALINA3_HOME=/usr/local/atlassian-jira-software-7.12.1-standalone
export CATALINA3_BASE=/usr/local/atlassian-jira-software-7.12.1-standalone
export PATH=$PATH:$CATALINA3_BASE/bin:$PATH

儲存,輸入命令:source /etc/profile 更新環境變數配置

如此設定完成後,JIRA和Tomcat的衝突解決,JIRA能夠正常關閉和啟動了。

總結

由於博主有配置多個Tomcat的經驗,所以在發生衝突時,第一反應便是去修改JIRA內建Tomcat的catalina.sh檔案,但是修改之後發現問題並未解決,雖然啟動指令碼可以定位正確,但是PID卻還是使用的Tomcat8.5的PID,於是順藤摸瓜,去修改了setenv.sh檔案裡的CATALINA_BASE和CATALINA_HOME的配置。

每個Tomcat在啟動的時候會在work目錄下生成一個catalina.pid檔案

同樣JIRA屬於內建Tomcat,也會有這個目錄

修改了setenv.sh檔案之後,才解決了程序衝突的問題。