天天看點

linux crontab執行api,Linux crontab定時執行Shell腳本需要執行特定的指令時解決思路...

由于一些不可抗拒的原因,項目部署後需要定時檢測項目是否正常運作,否則将執行重新開機指令。

在具體實施過程中發現,定時器執行無誤,但是重新開機指令無法正常啟動。多方查找發現Shell腳本中的Java指令需要引入環境變量方可正常執行。是以做了一下修改,腳本如下(僅供參考):

1、crontab執行配置

* * * * * cd /項目目錄 && ./auto_start.sh >> /log/auto.out

2、Shell腳本

#!/bin/bash

#導入環境變量

export

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的過程中出現類似不可執行的指令時,當檢視是否需要引入相應的環境變量。

恐有疏漏,歡迎指正。讨論中精進技術,同技術死磕到底!

總結

以上就是這篇文章的全部内容了,希望本文的内容對大家的學習或者工作具有一定的參考學習價值,謝謝大家對腳本之家的支援。如果你想了解更多相關内容請檢視下面相關連結

您可能感興趣的文章:linux shell之控制台列印各種顔色字型和背景的實作方法

Linux Shell在目錄下使用for循環結合if查找檔案的巧用

Linux shell指令統計某列去重後的值

Linux shell腳本的建立與執行

Linux shell數組與關聯數組的用法執行個體

Android之在linux終端執行shell腳本直接列印目前運作app的日志的實作方法

Linux Shell 生成随機數和随機字元串的方法示例

Linux shell環境下Zabbix Api的使用

linux中shell的變量的數值計算

linux shell之pushd、popd和dirs的使用講解