我安装了 Moodle 2.3,运行良好。 升级到 Moodle 2.5,现在通知页面显示 Cron 作业未在 24 小时内运行。
因此,cron 停止运行。 我通过浏览器/URL 运行它,它花了一段时间但从未完成,服务器卡住,我不得不重新启动它。我假设这不应该发生,但我一直害怕再次运行 cron。
现在,我在哪里可以看到 cron 作业?我如何查看 cron 作业是否已经存在但停止运行,我在哪里可以找到日志,这个 cron 将在哪个用户下运行?
这是一个 openSuse 服务器
我尝试了这些命令:
crontab -u apache2 -e
crontab -u apache -e
crontab -u www-data -e
crontab -u root -e
<- 这会打开一个新文件,并说一个文件不存在,因此将创建一个。
它们都不起作用。
请帮我找到任何现有的 cron 作业、日志、moodle 2.5 的 cron 用户(不是 root
、apache
、www-data
等),我想看看他们为什么停下来,或者我可以通过某种方式让他们返回。
最佳答案
1。检查网络服务器的用户
通常,cron 作业使用网络服务器的同一用户运行(查找:Get apache linux user from php)。在类似 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
但它也可以列在文件中(仔细阅读 Cron on Moodle Wiki )。
3。检查 cron 作业是否正常运行
要检查 cron 是否正常工作,请查看:Reasons why crontab does not work .
注意事项
在设置 cronjob 之前我会小心,如果它会杀死你的服务器.. :) 我会尝试直接从命令行运行脚本,看看是否一切正常。像这样:
sudo -u wwwrun /usr/bin/php /path/to/moodle/admin/cli/cron.php
关于linux - Moodle 2.5 (openSuse) cron 作业停止运行,我找不到它,或日志,Moodle 的 cron 在哪里?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19799671/