在Tomcat中設置宕機自動重啟和每日定時啟動可以通過使用系統自帶的工具或者編寫腳本來實現。以下是兩種常見的方法:
[Unit]
Description=Apache Tomcat Web Application Container
After=syslog.target network.target
[Service]
Type=forking
Environment="CATALINA_HOME=/path/to/tomcat"
ExecStart=/path/to/tomcat/bin/startup.sh
ExecStop=/path/to/tomcat/bin/shutdown.sh
Restart=always
[Install]
WantedBy=multi-user.target
然后執行以下命令來啟用和啟動該服務:
systemctl enable tomcat.service
systemctl start tomcat.service
這樣Tomcat就會在系統啟動時自動啟動,并且在宕機時會自動重啟。
#!/bin/bash
TOMCAT_HOME=/path/to/tomcat
TOMCAT_PID=$(ps aux | grep catalina | grep -v grep | awk '{print $2}')
if [ -z "$TOMCAT_PID" ]; then
echo "Tomcat is not running. Starting Tomcat..."
$TOMCAT_HOME/bin/startup.sh
else
echo "Tomcat is running. PID: $TOMCAT_PID"
fi
# 每日定時重啟Tomcat
HOUR=$(date +'%H')
if [ $HOUR -eq 0 ]; then
echo "Restarting Tomcat..."
$TOMCAT_HOME/bin/shutdown.sh
sleep 5
$TOMCAT_HOME/bin/startup.sh
fi
將以上腳本保存為一個文件(比如restart_tomcat.sh),然后使用crontab來定時執行該腳本:
crontab -e
添加以下內容到crontab文件中,表示每天凌晨0點執行restart_tomcat.sh腳本:
0 0 * * * /path/to/restart_tomcat.sh
保存并退出crontab編輯器,這樣Tomcat就會在每天凌晨自動重啟。