Linux命令学习总结:shutdown

时间:2021-09-11 21:14:57

命令简介:

该命令可以安全关闭或者重新启动系统。你没有看错,shutdown命令不仅可以关闭系统、也可以重启Linux系统。

 

命令语法:

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

命令参数:


参数

长参数

描叙

-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

显示命令在线帮助

使用示例:

1: 查看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 ~]#

[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:马上关闭Linux系统,其中 now 相当于时间为 0 的状态

[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:系统2分钟后重新启动,其中+m表示几分钟后关机或开机。

[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:设置系统在那个时间点关机

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

 

 

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

[1] 4578

最好是使用命令&将关机命令至于后台处理。不影响当前其它操作。

设置多久时间后执行shutdown命令。时间参数有hh:mm或+m两种模式。hh:mm格式表示在几点几分执行shutdown命令。例如 “shutdown 10:45”表示将在10:45执行shutdown.+m表示m分钟后执行shutdown.比较特别的用法是以now表示立即执行shutdown. 值得注意的是这部分参数不能省略。另外,需要注意如果现在已经22:30,你执行了shutdown -h 22:00 & 那么第二天才会关机。

 

5:将前一个shutdown命令取消息

如下所示,执行了下面命令让Linux在12:30关机,但是如果发现这个时间点不合适,那么可以使用CTRL+C取消

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

Shutdown cancelled.

[root@db-server ~]#

也可以在另外一个命令窗口执行下面命令

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

 

6:向所有登录的用户发出信息

[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.

另外登录的会话窗口会收到如下信息

[root@db-server ~]# 

[root@db-server ~]# 

Broadcast message from root (pts/2) (Sat Jan 10 20:11:34 2015):

 

The system is going down to maintenance mode NOW!

一般使用下面语法,如下所示

[root@db-server ~]# shutdown -k now "The Server will shutdown now"

 

Broadcast message from root (pts/1) (Sat Jan 10 20:14:54 2015):

 

The Server will shutdown now 

The system is going down to maintenance mode NOW!

 

Shutdown cancelled.

 

7:重新启动时不进行磁盘检测

[root@db-server ~]# shutdown -fr now

 

Broadcast message from root (pts/1) (Sat Jan 10 20:23:59 2015):

 

The system is going down for reboot NOW!

 

8:在多少秒后关闭系统并给用户发送提示信息

[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!