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