CentOS下crontab执行java程序

阿里云CentOS收不到邮件

在crontab里配置执行脚本,脚本用来执行java程序,死活不执行。单独执行脚本可以运行。

查看crontab的日志文件,/var/log/cron,发现没有收到cron执行的mail,说:

" fatal: parameter inet_interfaces: no local interface found for ::1"

猜测是网卡的问题,百度之后发现是ipv6的鬼。修改方法:

修改/etc/postfix/main.cf,注释掉 inet_interfaces = all,重启服务 systemctl restart postfix

重新配置执行crontab,虽然java程序还是不能达到预期效果,但是至少是被执行了的,在/var/spool/mail/root中看到了错误信息。或者也可以通过在脚本中指定错误输出:

java -jar your_jar.jar >> /tmp/your_log 2>&1

java程序的配置

有人说是环境变量的问题,先是各种export,比如JAVA_HOME, CLASSPATH, PATH;后来索性有人说,一句source ~/.bash_rc就可以了;最后查看mail文件发现,java程序中写入文件失败,提示找不到路径。

TMD,crontab太傻X了,为何要让我的java程序中也写绝对路径?

参考:http://blog.sina.com.cn/s/blog_4b6f4d2f0100eogj.html

原文地址:https://www.cnblogs.com/zjutzz/p/4979523.html