1

我安装了 Moodle 2.3,运行良好。升级到 Moodle 2.5,现在通知页面显示 Cron 作业未在 24 小时内运行。

因此,cron 停止运行。我通过浏览器/ URL 运行它,它花了一段时间,但从未完成,服务器冻结,我不得​​不重新启动它。我假设这不应该发生,但我一直害怕再次运行 cron。

现在,我在哪里可以看到 cron 作业?如何查看 cron 作业是否已经存在但停止运行,在哪里可以找到日志,该 cron 将在哪个用户下运行?

这是一个 openSuse 服务器

我尝试了这些命令:

  1. crontab -u apache2 -e
  2. crontab -u apache -e
  3. crontab -u www-data -e
  4. crontab -u root -e <- 这会打开一个新文件并说一个不存在,因此将创建一个。

它们都不起作用。

请帮助我找到任何现有的 cron 作业、日志、moodle 2.5 的 cron 用户将是什么(不是root,apachewww-data),我想看看他们为什么停止了,或者我可以把它们转回去。

4

1 回答 1

0

1.检查Web服务器的用户

通常 cron 作业使用 Web 服务器的同一用户运行(以了解:从 php 获取 apache linux 用户)。在类似 debian 的发行版上是www-data,在 OpenSuse 上我认为是wwwrun.

2.检查定义的cron作业

之后,您可以像您已经说过的那样检查 cron 作业(无论如何,Moodle 没有在安装时定义 cron 作业,可能它们没有事先定义,或者某些东西或某人删除了这些作业?)

$ sudo crontab -u wwwrun -e

或者:

$ sudo -u wwwrun crontab -e

通常一个 Moodle cron 作业看起来类似于这样的一行:

*/15 * * * * /usr/bin/php  /path/to/moodle/admin/cli/cron.php >/dev/null

但它也可以列在文件中(仔细阅读Moodle Wiki 上的 Cron)。

3. 检查 cron 作业是否正常工作

要检查 cron 是否正常工作,请查看:crontab 不起作用的原因

笔记

在设置 cronjob 之前我会小心,如果它会杀死你的服务器.. :) 我会尝试直接从命令行运行脚本,看看是否一切正常。像这样的东西:

sudo -u wwwrun /usr/bin/php /path/to/moodle/admin/cli/cron.php
于 2013-11-06T08:46:54.750 回答