shutdown - bring the system down


/sbin/shutdown [ -t sec ] [ -rkhncf ] time [ warning-message ]


Shutdown brings the system down in a secure way. All logged in users are notified that the system is going down, and login(1) is blocked. It is possible to shut the system down immideately, or after a delay. All processes are first notified that the system is going down by the signal SIGTERM. This gives programs like vi(1) the time to save the file being editted, mail and news processing programs a chance to exit cleanly, etc. Shutdown does it's job by signalling the init process, asking it to change the runlevel. Runlevel 0 is used to halt the system, runlevel 6 is used to reboot the system and runlevel 1 is used to put to system into a state where administrative tasks can be performed; this is the default if neither the -h or -r flag is given to shutdown. To see which actions are taken on halt or reboot see the appropriate entries of these runlevels in the file /etc/inittab.


-t sec
Tell init to wait sec seconds between sending processes the warning and the kill signal, before changing to another runlevel.

Don't really shutdown; only send the warning messages to everybody.

Reboot after shutdown.

Halt after shutdown.

[DEPRECIATED] Don't call init to do the shutdown but do it ourself. The use of this option is discouraged, and its results are not always what you'd expect.

Do a `fast' reboot.

Cancel an already running shutdown. With this option it is ofcourse not possible to give the time argument, but you can enter a explanitory message on the command line that will be sent to all users.

When to shutdown.

Message to send to all users.

The time argument can have different formats. First, it can be an absolute time in the format hh:mm, in which hh is the hour (1 or 2 digits) and mm is the minute of the hour (in two digits). Second, it can be in the format +m, in which m is the number of minutes to wait. The word now is an alias for +0.

The -f flag means `reboot fast'. This only creates an advisory file /fastboot which can be tested by the system when it comes up again. The boot rc file can test if this file is present, and decide not to run fsck(1) since the system has been shut down in the proper way. After that, the boot process should remove /fastboot.

The -n flag causes shutdown not to call init, but to kill all running processes itself. After all processes are killed, shutdown will try to run the script /etc/rc.d/rc.halt fast (or rc.reboot). It also tests for the presence of the equivalent files rc.0 and rc.6. If this script returns or can't be executed (because it's not present for example) shutdown will turn off quota and accounting, turn off swapping and unmount all filesystems.

Access Control

Shutdown can be called from init(8) when the magic keys CTRL-ALT-DEL are pressed, by creating an appropriate entry in /etc/inittab. This means that everyone who has physical access to the console keyboard can shut the system down. To prevent this, shutdown can check to see if an authorized user is logged in on one of the virtual consoles. If shutdown is called from init, it checks to see if the file /etc/shutdown.allow is present. It then compares the login names in that file with the list of people that are logged in on a virtual console (from /var/run/utmp). Only if one of those authorized users or root is logged in, it will proceed. Otherwise it will write the message

shutdown: no authorized users logged in

to the (physical) system console. The format of /etc/shutdown.allow is one user name per line. Empty lines and comment lines (prefixed by a #) are allowed. Currently there is a limit of 32 users in this file.




Not really a bug, but most users forget to give the time argument and are then puzzled by the error message shutdown produces. The time argument is mandatory; in 90 percent of all cases this argument will be the word now.


Miquel van Smoorenburg,


fsck(8), init(1), halt(8), reboot(8)