我写了一个请求程序,它包含例行发送邮件。我正在使用cron来激活请求。这个cron工作正确执行,但我没有收到任何邮件。
为什么?
答案 0 :(得分:0)
您的邮件服务器是否支持ipv6?可能不是,你已经用
设置了你的配置 -Djava.net.preferIPv4Stack=true
设置。它不是Java中的默认设置,因此syscron用户可能没有配置它。将它添加到您使用syscron开始的命令行中,您的程序将使用ipv4。
答案 1 :(得分:0)
我有完全相同的问题。尝试在其他用户的环境中启动您的Java应用程序。它帮助了我。
#!/bin/sh
su - user1 -c "java -jar MyApp.jar > /tmp/app.log 2>&1"
答案 2 :(得分:0)
当cron启动你的应用程序时,它可能不会用java设置初始化系统变量。如果使用“su - username”启动应用程序,则会在启动命令之前启动配置文件脚本。如果您需要启动应用程序,例如每5分钟一次,那么请执行以下操作:
运行crontab -e
命令。默认文本编辑器将启动。
在编辑器的最后一行输入
*/5 * * * * su - username -c "java -jar MyApp.jar > /tmp/app.log 2>&1"
与通讯路径。