我无法在不同的用户下运行 crontab 作业。(例如 sudo -u someuser crontab -e)它在我的用户配置文件下运行得非常好。我知道是什么问题,但找不到解决方案。问题是,当我为其他用户配置此 crontab 作业时,crontab 无法找到 java,因此即使是简单的 java -version 也无法正常工作。
下面是我的脚本。
#!/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 ?