0

別のユーザーで 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 を実行しない理由がわかりません。

4

4 に答える 4

1

他のユーザーの crontab にパスを直接設定してみてください。「man 5 crontab」を参照してください。

于 2013-10-09T02:29:09.070 に答える
0

私の頭に浮かぶ唯一のことは、javaコマンドを実行しようとしているユーザーに実行可能権限がない可能性があるということです。

したがってchmod、実行に必要な権限を付与するために使用します。

于 2013-10-09T02:21:46.113 に答える