0

そこで、ちょっとした問題にぶち当たりました。私の職場では、マシンで環境変数を使用しています。最近、開発/製品サーバーを UNIX ベースのソリューション (RHEL 6) に切り替えました。古いプログラムの一部を cron で実行しようとしています。環境変数はボックス自体で実行されています (例: 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 が設定されています。非常に限られた PATH です。

すべての環境変数を利用できるようにするには、特定のコマンドを実行する前に ~/.profile ファイルをロードする必要があります。

私の場合、以下のコマンドを使用しました。

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

実行ジョブ.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 に答える