Linux command learning summary: explain the shutdown command in detail

  • 2020-05-14 05:52:49
  • OfStack

This paper describes the Linux command learning summary: shutdown command, as follows:

Command summary:

This command can safely shut down or restart the system. As you read correctly, the shutdown command not only shuts down the system, but also restarts the Linux system.

Command syntax:


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

Command parameters:

参数

长参数

描叙

-a

Use /etc/shutdown.allow.

-c

中断关机:当执行"shutdown -h 12:00"指令时,只要按+键就可以中断关机的指令

-f

重新启动时不进行磁盘检测(fsck)

-F

重新启动时进行磁盘检测(fsck)

-h

关闭电源

-k

模拟关机(不是真的关机),只是向登录者发送警告信息出去!

-n

不调用init进程进行关机,而是强行关机

-r

关闭系统然后重新启动,类似于Windows平台restart

-t

延迟关机的时间

-w

仅做测试,并不真的将系统重新开机,只会把重开机的数据写入/var/log目录下的wtmp记录文件

--help

显示命令在线帮助

Use examples:

1: view the help information for the reboot command


[root@db-server ~]# shutdown --help
shutdown: invalid option -- -
Usage:  shutdown [-akrhHPfnc] [-t secs] time [warning message]
         -a:   use /etc/shutdown.allow
         -k:   don't really shutdown, only warn.
         -r:   reboot after shutdown.
         -h:   halt after shutdown.
         -P:   halt action is to turn off power.
         -H:   halt action is to just halt.
         -f:   do a 'fast' reboot (skip fsck).
         -F:   Force fsck on reboot.
         -n:   do not go through "init" but go down real fast.
         -c:   cancel a running shutdown.
         -t secs: delay between warning and kill signal.
         ** the "time" argument is mandatory! (try "now") **
[root@db-server ~]#

[root@db-server ~]# man shutdown
SHUTDOWN(8)      Linux System Administrator  �   �   Manual     SHUTDOWN(8)
 
NAME
    shutdown - bring the system down
 
SYNOPSIS
    /sbin/shutdown [-t sec] [-arkhncfFHP] time [warning-message]
 
DESCRIPTION
    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 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.
    shutdown does its 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 shut-
    down. To see which actions are taken on halt or reboot see the appropriate entries for these runlevels in the
    file /etc/inittab.
 
OPTIONS
    -a   Use /etc/shutdown.allow.
 
    -t sec Tell init(8) to wait sec seconds between sending processes the warning and the kill signal, before
       changing to another runlevel.
 
    -k   Don  �   �   really shutdown; only send the warning messages to everybody.
 
    -r   Reboot after shutdown.
 
    -h   Halt or poweroff after shutdown.
 
    -H   Halt action is to halt or drop into boot monitor on systems that support it.
 
    -P   Halt action is to turn off the power.
 
    -n   [DEPRECATED] Don  �   �   call init(8) to do the shutdown but do it ourself. The use of this option is dis-
       couraged, and its results are not always what you  �   �   expect.
 
    -f   Skip fsck on reboot.
 
    -F   Force fsck on reboot.
 
    -c   Cancel an already running shutdown. With this option it is of course not possible to give the time argu-
       ment, but you can enter a explanatory message on the command line that will be sent to all users.
 
    time  When to shutdown.
 
    warning-message
       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 for-
    mat +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 creates the advisory file /etc/nologin which causes programs such as
    login(1) to not allow new user logins. 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.
 
    The -f flag means   �   �  eboot fast � ? This only creates an advisory file /fastboot which can be tested by the sys-
    tem 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 -F flag means   �   �  orce fsck � ? This only creates an advisory file /forcefsck which can be tested by the sys-
    tem when it comes up again. The boot rc file can test if this file is present, and decide to run fsck(1) with
    a special   �   �  orce � ?flag so that even properly unmounted filesystems get checked. After that, the boot process
    should remove /forcefsck.
 
    The -n 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 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 vir-
    tual consoles. If shutdown is called with the -a argument (add this to the invocation of shutdown in /etc/init-
    tab), 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.
 
    Note that if /etc/shutdown.allow is not present, the -a argument is ignored.
 
HALT OR POWEROFF
    The -H option just sets the init environment variable INIT_HALT to HALT, and the -P option just sets that vari-
    able to POWEROFF. The shutdown script that calls halt(8) as 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.
 
FILES
    /fastboot
    /etc/inittab
    /etc/init.d/halt
    /etc/init.d/reboot
    /etc/shutdown.allow
 
NOTES
    A lot of 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.
 
    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  �   �   designed to be run setuid. /etc/shutdown.allow is not used to find out who is executing shut-
    down, it ONLY checks who is currently logged in on (one of the) console(s).
 
AUTHOR
    Miquel van Smoorenburg, miquels@cistron.nl
 
SEE ALSO
    fsck(8), init(8), halt(8), poweroff(8), reboot(8)
 
                November 12, 2003          SHUTDOWN(8)
(END)

2: shut down Linux system immediately, now is equivalent to the state of zero time


[root@db-server ~]# shutdown -h now
 Broadcast message from root (pts/1) (Sat Jan 10 18:51:34 2015):
 The system is going down for system halt NOW!

3: restart the system after 2 minutes, where +m means shutdown or startup after a few minutes.


[root@db-server ~]# shutdown -r +2
 
Broadcast message from root (pts/2) (Sat Jan 10 19:56:00 2015):
 
The system is going DOWN for reboot in 2 minutes!

4: set the system to shut down at that time


[root@db-server ~]# shutdown -h 12:30

or


[root@db-server ~]# shutdown -h 12:30 &
[1] 4578

It is best to use the command & to put the shutdown command for background processing. Does not affect other current operations.

Set how long it takes to execute the shutdown command. The time parameter has two modes: hh: mm or +m. hh: the mm format means that the shutdown command is executed at some point. For example, "shutdown 10:45" means that shutdown will be executed at 10:45.+m means m will be executed minutes later. Also, be aware that if it's 22:30 now and you've executed shutdown-h 22:00 & then the next day it will shut down.

5: fetch the message from the first shutdown command

As shown below, the following command was executed to get Linux to shut down at 12:30, but if this time is found inappropriate, you can cancel using CTRL+C


[root@db-server ~]# shutdown -h 12:30 

Shutdown cancelled.

[root@db-server ~]# 

You can also execute the following command from another command window


[root@db-server ~]# shutdown -c

6: send a message to all logged-in users


[root@db-server ~]# shutdown -k "now" 
Broadcast message from root (pts/2) (Sat Jan 10 20:09:14 2015): 
The system is going down to maintenance mode NOW! 
Shutdown cancelled.

In addition, the login session window will receive the following information


[root@db-server ~]# shutdown --help
shutdown: invalid option -- -
Usage:  shutdown [-akrhHPfnc] [-t secs] time [warning message]
         -a:   use /etc/shutdown.allow
         -k:   don't really shutdown, only warn.
         -r:   reboot after shutdown.
         -h:   halt after shutdown.
         -P:   halt action is to turn off power.
         -H:   halt action is to just halt.
         -f:   do a 'fast' reboot (skip fsck).
         -F:   Force fsck on reboot.
         -n:   do not go through "init" but go down real fast.
         -c:   cancel a running shutdown.
         -t secs: delay between warning and kill signal.
         ** the "time" argument is mandatory! (try "now") **
[root@db-server ~]#
0

Use the following syntax, as shown below


[root@db-server ~]# shutdown --help
shutdown: invalid option -- -
Usage:  shutdown [-akrhHPfnc] [-t secs] time [warning message]
         -a:   use /etc/shutdown.allow
         -k:   don't really shutdown, only warn.
         -r:   reboot after shutdown.
         -h:   halt after shutdown.
         -P:   halt action is to turn off power.
         -H:   halt action is to just halt.
         -f:   do a 'fast' reboot (skip fsck).
         -F:   Force fsck on reboot.
         -n:   do not go through "init" but go down real fast.
         -c:   cancel a running shutdown.
         -t secs: delay between warning and kill signal.
         ** the "time" argument is mandatory! (try "now") **
[root@db-server ~]#
1

7: disk detection is not performed at reboot


[root@db-server ~]# shutdown --help
shutdown: invalid option -- -
Usage:  shutdown [-akrhHPfnc] [-t secs] time [warning message]
         -a:   use /etc/shutdown.allow
         -k:   don't really shutdown, only warn.
         -r:   reboot after shutdown.
         -h:   halt after shutdown.
         -P:   halt action is to turn off power.
         -H:   halt action is to just halt.
         -f:   do a 'fast' reboot (skip fsck).
         -F:   Force fsck on reboot.
         -n:   do not go through "init" but go down real fast.
         -c:   cancel a running shutdown.
         -t secs: delay between warning and kill signal.
         ** the "time" argument is mandatory! (try "now") **
[root@db-server ~]#
2

8: after how many seconds to shut down the system and send a prompt message to the user


[root@db-server ~]# shutdown -t 10 -h now "System will shutdown 10 sencond later"
Broadcast message from root (pts/1) (Sat Jan 10 20:33:36 2015): 
System will shutdown 10 sencond later 
The system is going down for system halt NOW!

Related articles: