簡體   English   中英

shell腳本在由cronjob執行時失敗,否則工作正常

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM