5

我在 Ubuntu 10.4 服务器上有一个 cron 作业,无缘无故停止运行。(这项工作已经运行了几个月并且没有改变。)我不是 *nix 大师,所以如果这是一个简单的问题,我恳求无知。我找不到任何理由或迹象表明这项工作会停止。我已经重新启动服务器但没有成功。这是工作:

# m h  dom mon dow   command
0 * * * * java -jar /home/mydir/myjar.jar >>/home/mydir/crontaboutput.txt

输出文件的最后一行显示程序在 2012 年 8 月 29 日运行。之后就什么都没有了。

任何想法在哪里看?

4

3 回答 3

9

作业运行时,系统日志中应该有一些内容。您可以尝试的另一件事是将 2>&1 添加到作业中以查看文本文件中的任何错误。——拉尔斯·科特霍夫昨天

这被证明是关键信息——添加 2>&1 使我能够捕获在其他任何地方都没有报告的错误。完成后的命令行如下所示:

java -jar /home/mydir/myjar.jar  2>&1  >>/home/mydir/crontaboutput.txt
于 2012-11-10T03:00:53.060 回答
4

也许你的cron守护进程已经停止,或者改变了配置(即/etc/cron.deny)。我建议制作一个 shell 脚本,并从crontab. crontab我还建议在其他时间通过您的其他程序(仅用于测试)运行。您可以logger在您的 shell 脚本中使用该命令syslog。查看系统日志文件。

于 2012-11-09T08:21:48.860 回答
0

接受的答案是正确的,(即检查错误日志)在我的情况下指出了错误。除了检查以下问题

  1. include('../my_dir/my_file.php) 可以从 url 工作,但是当 cron 作业运行时它不会工作,会吐出错误。

  2. 如果您使用 $_SERVER['DOCUMENT_ROOT'],$_SERVER 变量在 cron 操作系统中不起作用,它将无法被识别,并且您将在 cron 作业中遇到错误。

确保测试 cron 并让它运行,发送电子邮件等以确保它运行。

于 2019-10-05T13:32:14.383 回答