Server Fault is a question and answer site for system and network administrators. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

I have a few Ubuntu servers (8.10, 9.10) that is set to automatically install security updates. Some times these updates requires a restart of the system, and this string is shown in motd:

*** System restart required ***

To get a notice about these, I plan to write a Nagios test to monitor if the server is in need of a reboot. So, my question:

Is there a better way than parsing /etc/motd to find out if a reboot is needed?

share|improve this question
up vote 72 down vote accepted

Check for the presence of /var/run/reboot-required.

share|improve this answer
Exactly what I was looking for, thanks! – Anders Lindahl Dec 10 '09 at 10:00
Note: for debian systems, /var/run/reboot-required does not get created unless the update-notifier-common package is installed. – Peter V. Mørch Jan 27 '12 at 7:50
Note that update-notifier-common has been removed in Debian Jessie. unattended-upgrades now includes a simple script /etc/kernel/postinst.d/unattended-upgrades which touches the file. reboot-notifier is another small package which is compatible with the format of update-notifier-common. – ypid Jan 21 at 8:45
You may also want to check your running processes to see if a reboot has already been initiated. For instance, unattended-upgrades has the option of specifying a time for rebooting; until this time, the method above will continue to indicate that a reboot is required, even though one has already been initiated. – DylanYoung Jun 28 at 18:42

The script that generates the reboot required part of motd is /usr/lib/update-notifier/update-motd-reboot-required which contains:

#!/bin/sh -e
# helper for update-motd

if [ -f /var/run/reboot-required ]; then
        cat /var/run/reboot-required

Your nagios check could check for the existence of /var/run/reboot-required.

share|improve this answer
+1 for showing which file this is located in – Wayne Dec 10 '09 at 11:06

Additionally the file '/var/run/reboot-required.pkgs' lists the packages that requested the reboot. For example:

$ cat /var/run/reboot-required.pkgs 

On Ubuntu Lucid (10.4).

share|improve this answer

Debian and Ubuntu packages can trigger the creation of /var/run/reboot-required* in their postinst file by executing the helper script /usr/share/update-notifier/notify-reboot-required

Thus the "official" way to process reboots is handled by the package maintainer. I have been doing it previously in a script by comparing time booted against mtimes in /boot.

share|improve this answer
if [ ! -f /var/run/reboot-required ]; then
        # no reboot required (0=OK)
        echo "OK: no reboot required"
        exit 0
        # reboot required (1=WARN)
        echo "WARNING: `cat /var/run/reboot-required`"
        exit 1
share|improve this answer

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.