shutdown - bring the system down
] [-t sec
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 immediately or after a specified 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
edited, mail and news processing programs a chance to exit cleanly, etc.
does its job by signalling the init
process, asking it
to change the runlevel. Runlevel 0
is used to halt the system, runlevel
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
flag is given to
. To see which actions are taken on halt or reboot see the
appropriate entries for these runlevels in the file /etc/inittab
- Use /etc/shutdown.allow.
- Don't really shutdown; only send the warning messages to
- Reboot after shutdown.
- Halt or power off after shutdown.
- Halt action is to turn off the power.
- Modifier to the -h flag. Halt action is to halt or drop
into boot monitor on systems that support it. Must be used with the -h
- Skip fsck on reboot.
- Force fsck on reboot.
- [DEPRECATED] Don't call init(8) 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.
- Cancel a waiting shutdown. ("shutdown now" is no
longer waiting.) With this option it is of course not possible to give the
time argument, but you can enter explanatory message arguments on the
command line that will be sent to all users.
- -t sec
- Tell init(8) to wait sec seconds between
sending processes the warning and the kill signal, before changing to
- When to shutdown.
- warning message
- Message to send to all users.
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
If shutdown is called with a delay, it will create the advisory file
which causes programs such as login(1)
to not allow
new user logins. This file is created five minutes before the shutdown
sequence starts. Shutdown removes this file if it is stopped before it can
signal init (i.e. it is cancelled or something goes wrong). It also removes it
before calling init to change the runlevel.
flag means `reboot fast'. This only creates an advisory file
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
(1) since the system has been shut down in the proper way. After
that, the boot process should remove /fastboot
flag means `force fsck'. This only creates an advisory file
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 to run
(1) with a special `force' flag so that even properly unmounted
file systems get checked. After that, the boot process should remove
flag causes shutdown
not to call init
, but to kill
all running processes itself. shutdown
will then turn off quota,
accounting, and swapping and unmount all file systems.
can be called from init
(8) when the magic keys
are pressed, by creating an appropriate entry in
. 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 with the -a
argument (add this
to the invocation of shutdown in /etc/inittab), it checks to see if the file
is present. It then compares the login names in
that file with the list of people that are logged in on a virtual console
). Only if one of those authorized users or
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
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.
Note that if /etc/shutdown.allow
is not present, the -a
option just sets the init
, and the -P
option just sets that
variable to POWEROFF
. The shutdown script that calls halt
the last thing in the shutdown sequence should check these environment
variables and call halt
(8) with the right options for these options to
actually have any effect. Debian 3.1 (sarge) supports this.
A lot of users forget to give the time
argument and are then puzzled by
the error message shutdown
produces. The time
mandatory; in 90 percent of all cases this argument will be the word
Init can only capture CTRL-ALT-DEL and start shutdown in console mode. If the
system is running the X window System, the X server processes all key strokes.
Some X11 environments make it possible to capture CTRL-ALT-DEL, but what
exactly is done with that event depends on that environment.
Shutdown wasn't designed to be run setuid. /etc/shutdown.allow is not used to
find out who is executing shutdown, it ONLY checks who is currently logged in
on (one of the) console(s).
Miquel van Smoorenburg, firstname.lastname@example.org