[英]shell script fails when executed by cronjob, works fine otherwise
我有一個可執行jar,我編寫了一個shell腳本來執行它。 當我手動運行shell腳本時,它運行正常但是當計划每周使用crontab運行它時,它會出現以下錯誤 -
log_process.sh: line 16: java: command not found
我的shell腳本中的第16行是 -
java -jar $jar_path $logDirectory $logNamePattern $processedLogDirectory $oldResultsDirectory 2>>$log_file 1>&2
任何想法為什么它在我手動運行時運行正常而在vrontab作業運行時卻沒有運行?
您的cron作業無權訪問您作為用戶所擁有的相同$ PATH變量。
解決此問題的最簡單方法是打開終端,然后運行以下命令:
which java
這將為您提供java可執行文件的絕對路徑。 例如:
/opt/Oracle/Java/bin/java
用整個路徑替換'java'命令。
您可能還想在shell腳本中指定JAVA_HOME變量。 從您的終端運行:
echo $JAVA_HOME
那會給你另一條路,比如'/ opt / Oracle / Java'。 在您的腳本中(假設您正在使用bash),在運行java命令之前,請執行以下操作:
export JAVA_HOME=/opt/Oracle/Java
用前一個echo給你的輸出替換'/ opt / Oracle / Java'。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.