'\" -*- coding: UTF-8 -*- .\" Copyright (C) 1998-2003 Miquel van Smoorenburg. .\" .\" This program is free software; you can redistribute it and/or modify .\" it under the terms of the GNU General Public License as published by .\" the Free Software Foundation; either version 2 of the License, or .\" (at your option) any later version. .\" .\" This program is distributed in the hope that it will be useful, .\" but WITHOUT ANY WARRANTY; without even the implied warranty of .\" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the .\" GNU General Public License for more details. .\" .\" You should have received a copy of the GNU General Public License .\" along with this program; if not, write to the Free Software .\" Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA .\" .\"{{{}}} .\"{{{ Title .TH SHUTDOWN 8 "November 12, 2003" "sysvinit @VERSION@" "Linux System Administrator's Manual" .\"}}} .\"{{{ Name .SH NAME shutdown \- bring the system down .\"}}} .\"{{{ Synopsis .SH SYNOPSIS .B /sbin/shutdown .RB [ \-akrhPHfFncqQ ] .RB [ \-t .IR sec ] .I time .RI [ "warning message" ] .\"}}} .\"{{{ Description .SH DESCRIPTION \fBshutdown\fP brings the system down in a secure way. All logged-in users are notified that the system is going down, and \fBlogin\fP(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 \fBSIGTERM\fP. This gives programs like \fBvi\fP(1) the time to save the file being edited, mail and news processing programs a chance to exit cleanly, etc. \fBshutdown\fP does its job by signalling the \fBinit\fP process, asking it to change the runlevel. Runlevel \fB0\fP is used to halt the system, runlevel \fB6\fP is used to reboot the system, and runlevel \fB1\fP is used to put to system into a state where administrative tasks can be performed; this is the default if neither the \fB-h\fP or \fB-r\fP flag is given to \fBshutdown\fP. To see which actions are taken on halt or reboot see the appropriate entries for these runlevels in the file \fI/etc/inittab\fP. .\"}}} .\"{{{ Options .SH OPTIONS .\"{{{ -a .IP "\fB\-a\fP Use \fI/etc/shutdown.allow\fP. .\"}}} .\"{{{ -k .IP \fB\-k\fP Don't really shutdown; only send the warning messages to everybody. .\"}}} .\"{{{ -r .IP \fB\-r\fP Reboot after shutdown. .\"}}} .\"{{{ -h .IP \fB\-h\fP Halt or power off after shutdown. Usually used with the \fB-P\fP or \fB-H\fP flags, depending on whether we want to poweroff or simply stop the operating system. .\"}}} .\"{{{ -P .IP \fB\-P\fP Modifier to the \fB-h\fP flag. Halt action is to turn off the power. Must be used with the \fB-h\fP flag. .\"}}} .\"{{{ -H .IP \fB\-H\fP Modifier to the \fB-h\fP flag. Halt action is to halt or drop into boot monitor on systems that support it. Must be used with the \fB-h\fP flag. Halting is often used to run through the shutdown process and leave output on the screen for debugging purposes. Or when the user wants the OS to stop, but leave the power on. To power off at the end of the shutdown sequence use the \fB-P\fP modifier instead. .\"}}} .\"{{{ -f .IP \fB\-f\fP Skip \fBfsck\fP(8) on reboot. .\"}}} .\"{{{ -F .IP \fB\-F\fP Force \fBfsck\fP(8) on reboot. .\"}}} .\"{{{ -n .IP \fB\-n\fP [DEPRECATED] Don't call \fBinit\fP(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. .\"}}} .\"{{{ -c .IP \fB\-c\fP Cancel a waiting shutdown. (\fBshutdown now\fP 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. .\"{{{ -q .IP \fB\-q Reduce the number of warnings \fBshutdown\fP displays. Usually \fBshutdown\fP displays warnings every 15 minutes and then every minute in the last 10 minutes of the countdown until \fItime\fP is reached. When \fB-q\fP is specified \fBshutdown\fP only warns at 60 minute intervals, at the 10 minute mark, at the 5 minute mark, and when the shutdown process actually happens. .\"{{{ -Q .IP \fB\-Q Silence warnings prior to shutting down. Usually \fBshutdown\fP displays warnings every 15 minutes and then every minute in the last 10 minutes of the countdown until \fItime\fP is reached. When \fB-Q\fP is specified \fBshutdown\fP only warns when the shutdown process actually happens. All other warning intervals are suppressed. .\"}}} .\"{{{ -t sec .IP "\fB\-t\fP \fIsec\fP" Tell \fBinit\fP(8) to wait \fIsec\fP seconds between sending all processes the warning (\fBSIGTERM\fP) and the kill signal (\fBSIGKILL\fP), before changing to another runlevel. The default time, if no value is specified, between these two signals is three seconds. Warning: when \fBshutdown\fP calls \fBinit\fP(8) to perform the shutdown (the default behavior), \fBinit\fP(8) checks to see if all processes have terminated and will stop waiting early once its children have all terminated. When \fBshutdown\fP is called with the \fB-n\fP flag, it waits the full time specified (or three seconds) even if all other processes have terminated. .\"}}} .\"{{{ time .IP \fItime\fP When to shutdown. .\"}}} .\"{{{ warning-message .IP "\fIwarning message\fP" Message to send to all users. .\"}}} .PP The \fItime\fP argument can have different formats. First, it can be an absolute time in the format \fIhh:mm\fP, in which \fIhh\fP is the hour (1 or 2 digits) and \fImm\fP is the minute of the hour (in two digits). Second, it can be in the format \fB+\fP\fIm\fP, in which \fIm\fP is the number of minutes to wait. Third, it can be in the format \fB+\fP\fIhh:mm\fP, in which \fIhh:mm\fP is the number of hours and minutes to wait. The word \fBnow\fP is an alias for \fB+0\fP. .PP If \fBshutdown\fP is called with a delay, it will create the advisory file .I /etc/nologin which causes programs such as \fBlogin\fP(1) to not allow new user logins. This file is created five minutes before the shutdown sequence starts. \fBshutdown\fP 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 \fBinit\fP(8) to change the runlevel. .PP The \fB\-f\fP flag means `reboot fast'. This only creates an advisory file \fI/fastboot\fP 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 \fBfsck\fP(8) since the system has been shut down in the proper way. After that, the boot process should remove \fI/fastboot\fP. .PP The \fB\-F\fP flag means `force fsck'. This only creates an advisory file \fI/forcefsck\fP 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 \fBfsck\fP(8) with a special `force' flag so that even properly unmounted file systems get checked. After that, the boot process should remove \fI/forcefsck\fP. .PP The \fB-n\fP flag causes \fBshutdown\fP not to call \fBinit\fP(8), but to kill all running processes itself. \fBshutdown\fP will then turn off quota, accounting, and swapping and unmount all file systems. .\"}}} .\"{{{ Files .SH ACCESS CONTROL \fBshutdown\fP can be called from \fBinit\fP(8) when the magic keys \fBCTRL-ALT-DEL\fP are pressed, by creating an appropriate entry in \fI/etc/inittab\fP. This means that everyone who has physical access to the console keyboard can shut the system down. To prevent this, \fBshutdown\fP can check to see if an authorized user is logged in on one of the virtual consoles. If \fBshutdown\fP is called with the \fB-a\fP argument (add this to the invocation of shutdown in \fI/etc/inittab\fP), it checks to see if the file \fI/etc/shutdown.allow\fP 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 \fI/var/run/utmp\fP). Only if one of those authorized users \fBor root\fP is logged in, it will proceed. Otherwise it will write the message .sp 1 .nf \fBshutdown: no authorized users logged in\fP .fi .sp 1 to the (physical) system console. The format of \fI/etc/shutdown.allow\fP is one user name per line. Empty lines and comment lines (prefixed by a \fB#\fP) are allowed. Currently there is a limit of 32 users in this file. .sp 1 Note that if \fI/etc/shutdown.allow\fP is not present, the \fB-a\fP argument is ignored. .SH HALT OR POWEROFF The \fB-H\fP option just sets the \fBinit\fP environment variable \fBINIT_HALT\fP to \fBHALT\fP, and the \fB-P\fP option just sets that variable to \fBPOWEROFF\fP. The script (usually \fI/etc/init.d/halt\fP) that calls the \fBhalt\fP(8) program as the last thing in the shutting down sequence should check this environment variable and call the \fBhalt\fP(8) program with the right options for these options to actually have any effect. .SH FILES .nf /fastboot /etc/inittab /etc/init.d/halt /etc/init.d/reboot /etc/shutdown.allow .fi .\"}}} .SH NOTES A lot of users forget to give the \fItime\fP argument and are then puzzled by the error message \fBshutdown\fP produces. The \fItime\fP argument is mandatory; in 90 percent of all cases this argument will be the word \fBnow\fP. .PP \fBinit\fP(8) can only capture CTRL-ALT-DEL and start \fBshutdown\fP 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. .PP \fBshutdown\fP wasn't designed to be run setuid. \fI/etc/shutdown.allow\fP is not used to find out who is executing shutdown, it ONLY checks who is currently logged in on (one of the) console(s). .\"{{{ Author .SH AUTHOR .MT miquels@\:cistron\:.nl Miquel van Smoorenburg .ME .\"}}} .\"{{{ See also .SH "SEE ALSO" .BR fsck (8), .BR init (8), .BR halt (8), .BR poweroff (8), .BR reboot (8) .\"}}}