centos7下配置Tomcat開機啟動(service方式和daemon方式)
阿新 • • 發佈:2018-11-19
參考博文:Linux下daemon部署Tomcat
通常我們在開發環境使用tomcat時直接使用$CATALINA_HOME/bin/startup.bat和shutdown.bat來啟動和關閉tomcat。然而在生產環境中我們需要將tomcat配置成以daemon守護程序來執行
,主要有以下幾個原因:
- 以daemon方式執行tomcat可使tomcat不受終端影響,不會因為退出終端而停止執行。
- 可以讓tomcat以普通使用者身份執行
- 可以讓tomcat在系統啟動時自動執行
下面開始配置:
1.配置環境變數
配置JAVA_HOME,CATALINA_HOME兩個環境變數
export JAVA_HOME=/usr/local/jdk
export CATALINA_HOME=/usr/local/tomcat
2.編譯安裝jsvc
jsvc 是 daemon 模式用來啟動 Tomcat 8 的程式
#解壓
cd $CATALINA_HOME/bin
tar -zxvf commons-daemon-native.tar.gz
#配置
cd commons-daemon-1.1.0-native-src/unix
./configure --with-java=/usr/local/jdk
#編譯
make
#編譯後,會產生一個jsvc的二進位制可執行檔案。將其複製到$CATALINA_HOME/bin下
cp jsvc ../..
3.建立使用者和組
建立tomcat使用者,僅用來執行tomcat
#建立tomcat組
groupadd tomcat
#建立tomcat使用者(該使用者沒有登入許可權)
useradd tomcat -s /sbin/nologin -M
#設定目錄所屬使用者和組
chown -R tomcat:tomcat /usr/local/tomcat
4.建立setenv.sh檔案
在tomcat/bin目錄下建立setenv.sh檔案
vim setenv.sh
新增內容
# add tomcat pid
CATALINA_PID="/usr/local/tomcat/tomcat.pid"
# add JAVA_HOME
JAVA_HOME=/usr/local/jdk
# add JAVA_OPTS
JAVA_OPTS="-server -Xms256M -Xmx512M -XX:MaxNewSize=256m"
5.設定後臺啟動指令碼(如果上面設定了setenv.sh這裡這裡可跳過
)
開啟daemon.sh檔案
vim /usr/local/tomcat/bin/daemon.sh
搜尋
找到&& TOMCAT_USER=tomcat,將這裡的TOMCAT_USER設定為建立的使用者。
若本來就使用的tomcat使用者,所以這裡不用改
取消JAVA_HOME的註釋,並改為自己的jdk配置路徑
JAVA_HOME=/usr/local/jdk
6.配置開機啟動
有傳統的service服務方式和centos7中新的systemctl方式
方式一:service服務方式(傳統方式)
7.在/etc/init.d/目錄下編寫啟動tomcat服務的指令碼
#建立tomcat
vim /etc/init.d/tomcat
寫入如下內容
#!/bin/bash
#startup script for tomcat on linux
# chkconfig: 2345 10 90
# description: tomcat sever ....
#filename tomcat.sh
#JAVA_HOME=/usr/local/jdk
TOMCAT_HOME=/usr/local/tomcat
################################################
start_tomcat=$TOMCAT_HOME/bin/daemon.sh
stop_tomcat=$TOMCAT_HOME/bin/daemon.sh
start() {
echo -n "Starting tomcat: "
${start_tomcat} start
echo "tomcat start ok"
}
stop() {
echo -n "Shutdown tomcat"
${stop_tomcat} stop
echo "tomcat stop ok"
}
#how we were called
case "$1" in
start)
start
;;
stop)
stop
;;
restart)
stop
sleep 10
start
;;
*)
echo "Usage: $0 {start|stop|restart}"
esac
exit 0
8.授權
chmod 777 /etc/init.d/tomcat
9.service方式啟動
#新增tomcat服務
chkconfig --add tomcat
#檢視tomcat服務是否被新增
chkconfig –list | grep tomcat
#啟動/停止/重啟tomcat服務
service tomcat start/stop/restart
#檢視tomcat服務狀態
service tomcat status
方式二:systemctl服務方式(新方式)
以前都用service命令管理軟體,而centos7.x引入新的方式來管理系統程序,使用systemctl替換了service命令,當然service方式依舊可以繼續使用。systemctl是一個systemd工具,主要負責控制systemd系統和服務管理器。systemctl的使用可參考CentOS7中systemctl的使用
7.建立開機啟動服務檔案
建立一個名為tomcat.service的系統服務指令碼
#建立一個名為tomcat.service的系統服務指令碼
vim /usr/lib/systemd/system/tomcat.service
寫入以下內容
[Unit]
Description=Apache Tomcat
After=network.target remote-fs.target nss-lookup.target
[Service]
Type=forking
PIDFile=/usr/local/tomcat/tomcat.pid
Environment=JAVA_HOME=/usr/local/jdk
Environment=CATALINA_HOME=/usr/local/tomcat
ExecStart=/usr/local/tomcat/bin/daemon.sh start
ExecStop=/usr/local/tomcat/bin/daemon.sh stop
User=tomcat
Group=tomcat
PrivateTmp=true
[Install]
WantedBy=multi-user.target
配置好後,要重新整理一下
#重新載入一下配置。每次改動後也要重新載入
systemctl daemon-reload
8.設定開機啟動,並啟動服務
#設定允許開機自啟動
systemctl enable tomcat
#啟動服務
systemctl start tomcat
#檢視狀態
systemctl status tomcat
#檢視服務是否啟用
systemctl is-active tomcat
##其它命令
# 禁止開機啟動
systemctl disable tomcat
# 停止服務
systemctl stop tomcat
# 重啟服務
systemctl restart tomcat
# 檢視所有已啟動的服務
systemctl list -units --type=service