今天在用linux crontab 执行定时任务。在输出的nohup.log文件发现以下错误:
nohup: cannot run command `java’: No such file or directory
nohup 执行的命令在当前用户环境没有问题,在crontab执行就报以上错误。
开始怀疑是JAVA_HOME设置问题,所以使用env进行查看,发现没有问题。
后来怀疑可能是jdk版本问题,因为在1.7上验证没有问题,现在的jdk版本是1.8。
然后把该机器的版本降到1.7发现问题依旧,确定不是版本问题。
因为手工执行没有问题,所以开始怀疑crontab没有正确的加载环境变量。
于是在调用nohup java -jar之前增加了加载环境变量的操作,问题解决。
具体实现:/var/spool/crontab/root
. /etc/profile
nohup java -jar xxx.jar > nohup.log &