crontab not running java
我有一个.jar,可以通过命令行完美地运行它。
我需要每5分钟连续运行一次,所以我在crontab-e中添加了这一行
1
| */5 * * * * java -jar /var/www/java/executable.jar |
如果我去
1
| grep CRON /var/log/syslog |
我确实知道作业是在哪里执行的,但它从来没有出现过,因为我在Java文件里面有一个记录器,它所做的第一件事就是把记录器追加到时间上,而不是这样。
可能的错误是什么?
最常见的错误是环境变量没有绑定并且
Java不在路径中
未设置Java_Home。
尝试
1
| */5 * * * * java -jar /var/www/java/executable.jar > /var/log/javacron.log 2> /var/log/javacron-err.log |
并检查/var/log/javacron.log文件以获取更多信息。
- 即使当我运行命令时,它也能正常工作?
- 是的,即使使用命令行运行。cron可以使用不同的用户或外壳。如果运行不同的用户,Java Excel可能不允许工作。如果它运行不同的shell,那么在cron执行中可能没有环境变量可见性。
- 文件生成为空
- 好吧,这是非常相互关联的!我在答案中添加了一个2>输出,见编辑。2>表示出错。通常一个程序可以写入两个独立的输出,一个用于正常消息(>),一个用于致命错误消息(2>)。请重试。
- @Pato.llaguno我注意到你问了stackoverflow.com/questions/26225771,你在这个问题上有什么结果吗?
- 这是我见过的最好的解决方案。按照这个答案。stackoverflow.com/a/51137630/5093657