繁体   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