我无法在不同的用户下运行 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 ?
最佳答案
尝试直接在其他用户的 crontab 中设置路径。请参见“man 5 crontab”。
关于java - 无法从其他用户的 crontab 作业执行 java 程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19261844/