接手一台用 Tomcat 跑着 Java Web 應用的 Linux CentOS 服務器,通過鏡像的方式更換服務器后站點無法訪問,發現是因為 Tomcat 不能在服務器啟動后自動啟動,於是基於 init.d 將 Tomcat 配置為以服務方式自動運行。
配置步驟如下:
- 在
/etc/init.d/
目錄中添加配置文件 tomcat-app - 通過
chmod +x tomcat-app
命令將 tomcat-app 設置為可執行文件 - 通過
chkconfig --add tomcat-app
命令將 tomcat-app 添加到啟動服務中 - 通過
chkconfig --list tomcat-app
命令檢查是否成功添加到啟動服務中 - 通過
service tomcat-app start
命令測試服務是否可以正常啟動 - 重啟服務器驗證 tomcat-app 是否可以自動啟動
tomcat-app 配置文件內容
配置要點:
- 注釋中一定要添加 chkconfig ,不然添加到啟動服務中時會報錯 "service xxx does not support chkconfig"
- 要設置 JAVA_HOME 與 JRE_HOME 環境變量,不然啟動服務時會報錯 "Neither the JAVA_HOME nor the JRE_HOME environment variable is defined"
具體配置如下:
#!/bin/bash
# chkconfig: 2345 80 20
export JAVA_HOME="/javaWork/jdk1.8.0_171"
export JRE_HOME="/javaWork/jdk1.8.0_171/jre"
TOMCAT_HOME=/usr/local/javaTom/apache-tomcat-9.0.12/bin
start() {
cd $TOMCAT_HOME
./startup.sh
}
stop() {
cd $TOMCAT_HOME
./shutdown.sh
}
case $1 in
start|stop) $1;;
restart) stop; start;;
*) echo "Run as $0 "; exit 1;;
esac
參考資料: