0

所以我遇到了一个问题。我的工作场所在它的机器上使用环境变量,我们最近将我们的开发/生产服务器切换到基于 unix 的解决方案(RHEL 6),我们正试图让我们的一些旧程序使用 cron 运行。envir 变量在盒子本身上运行(例如:Server1=dev-server.intranet.net 或类似的东西),但我们遇到了 cron 到位的问题。

例子。

java -jar MyProgram.jar -- Works fine

MyProg.sh - 工作正常

JAVA_HOME=/usr/data/java/current
PATH=$JAVA_HOME/bin

export JAVA_HOME
export PATH

java -jar /usr/data/apps/MyProg/MyProg.jar

从 cron 调用 MyProg.sh 时,它不起作用,因为它根本看不到环境变量。

有人可以提供一些有关如何使用 cron 进行这项工作的见解吗?

谢谢。

4

3 回答 3

1

JAVA_HOME 和 PATH 不需要设置

你能试一下吗

/usr/data/java/current/java -jar /usr/data/apps/MyProg/MyProg.jar
于 2012-09-05T14:21:20.080 回答
0

我最终通过做一个来解决这个问题

源 /etc/profile.d/MyVars.sh

这让我的环境变量恢复原状。

于 2012-09-06T15:00:03.347 回答
-1

Cron 总是在一个几乎空的环境中运行。HOME、LOGNAME 和 SHELL 已设置;和一个非常有限的路径。

为了使所有环境变量可用,我们需要在运行给定命令之前加载 ~/.profile 文件。

就我而言,我使用了以下命令。

40 11 * * * . $HOME/.profile; /shellPath/bin/execute-job.sh START 5 >> /home/sampleuser/cron.log 2>&1

执行-job.sh

nohup java -Dlog4j.configuration=file:/shellPath/conf/log4j.properties -cp /shellPath/libs/scheduler-0.1.jar  com.scheduler.Scheduler $1 $2 > /dev/null 2>&1 &
于 2018-07-02T13:42:19.700 回答