Preventing access whilst maintenance is taking place

Maintenance mode is for preventing any users other than administrators from using the site while maintenance is taking place, though it's not designed to prevent user access during version upgrades.

When users attempt to access a course when your site is in maintenance mode, they obtain a message informing them that the site is in maintenance mode. If you wish, you can create a customized maintenance mode message, perhaps stating when the site will be available again or giving the reason for doing maintenance.

Note: The front page of your site will appear as normal when your site is in maintenance mode. Users will only see the maintenance mode message when they attempt to access a course.

Setting maintenance mode

An administrator can put the site into maintenance mode in Administration > Site administration > Server > Maintenance mode.

When a site is in maintenance mode, the link "In Maintenance Mode" is displayed near the top right of each page (except the front page) for admins.

If your session finished while still in Mainenance mode, you can re-login by typing the login URL directly (http://yoursitename/login/)

CLI maintenance mode

Admins can enable CLI maintenance mode by adding a file $CFG->dataroot/climaintenance.html. If it exists, this file will be sent to the navigator instead of the standard Moodle home page.
The difference from the standard maintenance mode is that all web access is prevented, CLI scripts continue to work (with the exception of admin/cli/cron.php). This CLI maintenance mode is often used during CLI version upgrades.

It is possible to use the admin/cli/maintenance.php to schedule the CLI maintenance mode and then to display a message to users warning them when the site will become unavailable. In the scheduled maintenance mode, the maintenance message is taken from admin setting, template file $CFG->dataroot/climaintenance.template.html and the language pack, in this order. See MDL-37596 for details.

Outage manager additial plugin

This is a Moodle plugin which makes the student experience of planned outages nicer, and provides extra tools for administrators and testers that help before and after the outage window.

The main idea is that instead of an outage being a very boolean on/off situation, this plugin creates the concept of graduated outages where at predefined times before an outage and after, different levels of warning and access can be provided to students and testers letting them know what is about to happen and why.

See Outage manager - A plugin to manage outage periods, such as scheduled maintenance, including CLI tools to embed in your scripting.