由于一些不可抗拒的原因,項目部署后需要定時檢測項目是否正常運行,否則將執(zhí)行重啟命令。
在具體實施過程中發(fā)現(xiàn),定時器執(zhí)行無誤,但是重啟命令無法正常啟動。多方查找發(fā)現(xiàn)Shell腳本中的Java命令需要引入環(huán)境變量方可正常執(zhí)行。因此做了一下修改,腳本如下(僅供參考):
1、crontab執(zhí)行配置
* * * * * cd /項目目錄 ./auto_start.sh >> /log/auto.out
2、Shell腳本
#!/bin/bash
#導(dǎo)入環(huán)境變量
export LANG="en_US.UTF-8"
export JAVA_HOME=/usr/local/java
export CLASSPATH=$JAVA_HOME/lib
export PATH=$PATH:$JAVA_HOME/bin
APP_NAME=app
JAR_NAME=app.jar
Log="log.out"
JVM="-server -Xms1024m -Xmx1024m -Xmn256m -Xss512k -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=128m"
pid=$(ps -ef | grep -v 'grep' | egrep $JAR_NAME| awk '{printf $2 " "}')
if [ "$pid" != "" ]; then
echo "boot ( pid $pid) is running"
else
echo -n "auto_start process pid: "
nohup java $JVM -jar $JAR_NAME --spring.profiles.active=dev > $Log 2>1
echo $(ps -ef | grep -v 'grep' | egrep $JAR_NAME| awk '{printf $2 " "}')
fi
簡單記錄如此,目的是為了提供一種解決問題的思路,當在使用crontab的過程中出現(xiàn)類似不可執(zhí)行的命令時,當查看是否需要引入相應(yīng)的環(huán)境變量。
恐有疏漏,歡迎指正。討論中精進技術(shù),同技術(shù)死磕到底!
總結(jié)
以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學習或者工作具有一定的參考學習價值,謝謝大家對腳本之家的支持。如果你想了解更多相關(guān)內(nèi)容請查看下面相關(guān)鏈接
您可能感興趣的文章:- 使用Linux shell腳本實現(xiàn)FTP定時執(zhí)行批量下載指定文件
- shell之定時周期性執(zhí)行腳本的方法示例