Note: You are currently viewing documentation for Moodle 3.1. Up-to-date documentation for the latest stable version of Moodle is probably available here: Cron.
The Moodle 'cron' process is a script that runs in the background different tasks at scheduled intervals. In Moodle, these scheduled tasks include sending mail, updating course or activity completions, posting forum messages or other tasks. Cron is a server operating system program, which needs to be told to trigger the Moodle cron scripts.
IMPORTANT: Do not skip setting up the cron process on your server for your Moodle. Your site will not work properly without it
On some Moodle sites it is possible to trigger the Moodle cron script by running yourmoodle/admin/cron.php in the address bar of a web browser.
Setting up cron on your system
Choose the information for your server type:
- Cron with Unix or Linux- Cron services on various UNIX and Linux flavored operating systems.
- Cron with Windows OS - Cron services in Windows
- Apple OSX - use the built-in 'crontab' service which is exactly the same as Cron with Unix or Linux. However, you might want to do it the 'Apple way' using launchd - see Cron with MAC OS X
- Cron with web hosting services- Cron services in various web hosting examples.
Cron settings in Moodle
There are settings within Moodle that control aspects of cron operation:
- Cron settings - Moodle cron process password and CLI settings
Using the 'web based' version of cron it is perfectly ok to place the cron process on a different machine to the Moodle server. For example, the cron service on a Unix server can invoke the cron web 'page' on a Windows based Moodle server.
Using Moodle forum discussions:
- Cron - can someone give me a quick confirmation of function?
- Cronjob Question
- Slow cron : avoiding simultaneous cron
- Visibility of cron.php
- How to log the output of a Scheduled Task on Windows - this discussion explains a nice trick that can be very useful when you are experiencing problems with your Windows Scheduled Task and you need to log the output of the Scheduled Task to a log file.