別のユーザーで crontab ジョブを実行できません (例: sudo -u someuser crontab -e)。私のユーザー プロファイルでは問題なく実行されます。問題の内容はわかっていますが、解決策が見つかりません。問題は、この crontab ジョブを他のユーザー用に構成すると、crontab が Java を見つけることができず、単純な Java バージョンでさえ機能しないことです。
以下は私のスクリプトです。
#!/bin/bash
export JAVA_HOME=/usr/jdk/jdk1.6.0_31
export PATH=/usr/local/bin:/bin:/usr/bin:/opt/dell/srvadmin/bin:/home/VishalS/bin
echo "JAVA_HOME is: " $JAVA_HOME >> log.out
echo "PATH is: " $PATH >> log.out
which java >> log.out
/usr/bin/java -version >> log.out
/usr/jdk/jdk1.6.0_31/bin/java -version >> log.out
上記のスクリプトの出力:
JAVA_HOME is: /usr/jdk/jdk1.6.0_31
PATH is: /usr/local/bin:/bin:/usr/bin:/opt/dell/srvadmin/bin:/home/VishalS/bin
/usr/bin/java
明らかに、以下の行は機能しませんでした。
/usr/bin/java -version >> log.out
/usr/jdk/jdk1.6.0_31/bin/java -version >> log.out
誰かがここで私を助けてくれませんか? jdk パスを設定した後でも crontab が java -version を実行しない理由がわかりません。