在linux上部署的時候,有時候程式異常了,會導緻jar或者tomcat程序自定關閉了,這時候想要它自動重新開機怎麼辦。
1.啟動jar的shell腳本
#!/bin/bash
#判斷檢視程序中8080端口是否存在
if [ "$(netstat -tlnp|grep 8080|grep -v grep|wc -l)" == 0 ]
then
#輸出
echo "Start"
#删除日志檔案
rm -rf /java/logs/10080.log
#背景啟動jar
nohup java -jar /java/jar/server/tcp-server-10080.jar > /java/logs/10080.log 2>&1 &
#存在輸出已啟動
else
echo "it's running..."
fi
2.啟動tomcat腳本
原本我們在bin目錄下有一個startup.sh腳本可以啟動tomcat,但是這個腳本沒有辦法做到自動重新開機,怎麼辦,我們在寫一個腳本來包裝它。
#!/bin/bash
#判斷檢視程序中8080端口是否存在
if [ "$(netstat -tlnp|grep 8080|grep -v grep|wc -l)" == 0 ]
then
echo "Start"
#進到tomcat的bin目錄下,執行startup.sh腳本
cd /java/apache-tomcat-8.5.40/bin/; sh startup.sh
#存在輸出已啟動
else
echo "it's running..."
fi
3.定時任務
有了這個腳本還不夠,我們還需要把這個腳本加入定時任務裡面去。
讓它每隔一分鐘執行一次,這樣他會不停的去執行這個腳本,如果發現程序裡面8080端口不存在了,就會執行腳本把服務重新起來。
定時任務指令: crontab -e
![](https://img.laitimes.com/img/9ZDMuAjOiMmIsIjOiQnIsIyZuBnLyYjN2QjMwATM0EzNwkTMwIzLc52YucWbp5GZzNmLn9Gbi1yZtl2Lc9CX6MHc0RHaiojIsJye.png)
按 “”i” 在最後一行插入定時任務
*/1 * * * * /java/startup/8080.sh > /dev/null 2>&1
每隔一分鐘執行一次:
執行時間: */1 * * * *
腳本路徑: /java/startup/8080.sh
不輸出任何終端資訊: /dev/null 2>&1
按“ :” ,wq儲存退出即可。
腳本下載下傳位址:https://download.csdn.net/download/xiaochende02/11347562