由于一些不可抗拒的原因,項(xiàng)目部署后需要定時(shí)檢測(cè)項(xiàng)目是否正常運(yùn)行,否則將執(zhí)行重啟命令。
在具體實(shí)施過(guò)程中發(fā)現(xiàn),定時(shí)器執(zhí)行無(wú)誤,但是重啟命令無(wú)法正常啟動(dòng)。多方查找發(fā)現(xiàn)Shell腳本中的Java命令需要引入環(huán)境變量方可正常執(zhí)行。因此做了一下修改,腳本如下(僅供參考):
1、crontab執(zhí)行配置
* * * * * cd /項(xiàng)目目錄 ./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
簡(jiǎn)單記錄如此,目的是為了提供一種解決問(wèn)題的思路,當(dāng)在使用crontab的過(guò)程中出現(xiàn)類似不可執(zhí)行的命令時(shí),當(dāng)查看是否需要引入相應(yīng)的環(huán)境變量。
恐有疏漏,歡迎指正。討論中精進(jìn)技術(shù),同技術(shù)死磕到底!
總結(jié)
以上就是這篇文章的全部?jī)?nèi)容了,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,謝謝大家對(duì)腳本之家的支持。如果你想了解更多相關(guān)內(nèi)容請(qǐng)查看下面相關(guān)鏈接
標(biāo)簽:紹興 武威 麗江 蚌埠 安康 日喀則 西寧 迪慶
巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《Linux crontab定時(shí)執(zhí)行Shell腳本需要執(zhí)行特定的命令時(shí)解決思路》,本文關(guān)鍵詞 Linux,crontab,定時(shí),執(zhí)行,Shell,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問(wèn)題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無(wú)關(guān)。