Skip to content
KARINKARIN
博客主页
项目总览
知识要点
捣鼓折腾
Git笔记
Excel修炼秘籍
github icon
  • 博客主页
    • 项目总览
          • linux介绍
            • linux的管理建议
              • linux文件系统结构
                • linux基本操作命令
                  • linux权限管理命令
                    • linux帮助命令
                      • linux搜索命令
                        • linux压缩、解压缩命令
                          • linux关机和重启命令
                            • sync 命令
                              • shutdown 命令
                                • reboot 命令
                                  • halt 和 poweroff 命令
                                    • init 命令
                                    • linux常用网络命令
                                      • linux文本编辑器
                                        • linux软件安装
                                          • linux用户和用户组管理
                                            • linux其他权限管理命令
                                              • linux文件系统管理

                                            linux关机和重启命令

                                            author iconkarincalendar icon2021年5月6日category icon
                                            • 笔记
                                            tag icon
                                            • linux
                                            timer icon大约 4 分钟

                                            此页内容
                                            • sync 命令
                                            • shutdown 命令
                                            • reboot 命令
                                            • halt 和 poweroff 命令
                                            • init 命令

                                            说到关机和重启,很多人认为,重要的服务器(比如银行的服务器、电信的服务器)如果重启了,则会造成大范围的灾难。这里解释一下。

                                            首先,就算是银行或电信的服务器,也不是不需要维护,而是依靠备份服务器来代替。其次,每个人的经验都是和自己的技术成长环境息息相关的。比如你是游戏运维出身, 而游戏又是数据为王,所以一切操作的目的就是保证数据的可靠和安全。这时,有计划的重启远比意外宕机造成的损失要小得多,所以定时重启是游戏运维的重要手段。既然是按照自己的技术出身来给出建议,那么难免有局限性,所以强调一下,这些只是“建议”,如果你有自己的经验,则完全可以按照自己的经验来维护服务器。

                                            # sync 命令

                                            sync 命令,把内存中的数据强制向硬盘中保存。

                                            英文原意:flush file system buffers

                                            当我们在计算机上保存数据的时候,其实是先在内存中保存一定时间,再写入硬盘。这其实是一种缓存机制,当在内存中保存的数据需要被读取的时候,从内存中读取要比从硬盘中读取快得多。不过这也会带来一些问题,如果数据还没有来得及保存到硬盘中,就发生了突然宕机(比如断电)的情况,数据就会丢失。

                                            sync 命令的作用就是把内存中的数据强制向硬盘中保存。这个命令在常规关机的命令中其实会自动执行,但如果不放心,则应该在关机或重启之前手工执行几次,避免数据丢失。

                                            sync 命令直接执行就可以了,不需要任何选项。

                                            [root@localhost ~]# sync
                                            
                                            1

                                            记得在关机或重启之前多执行几次 sync 命令,多一重保险总是好的。

                                            # shutdown 命令

                                            shutdown 命令,用于安全地关闭或重启 Linux 系统。

                                            英文原意:Halt, power-off or reboot the machine

                                            在早期的 Linux 系统中,应该尽量使用 shutdown 命令来进行关机和重启。因为在那时的 Linux 中,只有 shutdown 命令在关机或重启之前会正确地中止进程及服务,所以我们一直认为 shutdown 才是最安全的关机与重启命令。而在现在的系统中,一些其他的命令(如 reboot )也会正确地中止进程及服务,但我们仍建议使用 shutdown 命令来进行关机和重启。

                                            命令格式如下:

                                            [root@localhost ~]# shutdown [选项] 时间 [警告信息]
                                            选项:
                                            	-c:取消已经执行的 shutdown 命令
                                                -h:关机
                                                -r:重启
                                            
                                            1
                                            2
                                            3
                                            4
                                            5
                                            • 重启与定时重启

                                            先来看看如何使用 shutdown 命令进行重启。

                                            [root@localhost ~]# shutdown -r now
                                            #重启,now 是现在重启的意思
                                            [root@localhost ~]# shutdown -r 05:30
                                            #指定时间重启,但会占用前台终端
                                            [root@localhost ~]# shutdown -r 05:30 &
                                            #把定时重启命令放入后台,& 是后台的意思
                                            [root@localhost ~]# shutdown -c
                                            #取消定时重启
                                            [root@localhost ~]# shutdown -r +10
                                            #10分钟之后重启 
                                            
                                            1
                                            2
                                            3
                                            4
                                            5
                                            6
                                            7
                                            8
                                            9
                                            10
                                            • 关机和定时关机
                                            [root@localhost ~]# shutdown -h now
                                            #现在关机
                                            [root@localhost ~]# shutdown -h 05:30
                                            #指定时间关机 
                                            
                                            1
                                            2
                                            3
                                            4

                                            # reboot 命令

                                            reboot 命令,重启 Linux 系统。在现在的系统中,reboot 命令也是安全的,而且不需要加入过多的选项。

                                            英文原意:Halt, power-off or reboot the machine

                                            [root@localhost ~]# reboot
                                            #重启
                                            
                                            1
                                            2

                                            # halt 和 poweroff 命令

                                            这两个都是关机命令,直接执行即可。

                                            英文原意:Halt, power-off or reboot the machine

                                            [root@localhost ~]# halt
                                            #关机
                                            [root@localhost ~]# poweroff
                                            #关机
                                            
                                            1
                                            2
                                            3
                                            4

                                            # init 命令

                                            init 是修改 Linux 运行级别的命令,也可以用于关机和重启。

                                            英文原意:systemd system and service manager

                                            命令格式如下:

                                            [root@localhost ~]# init 数字[0-6]
                                            数字:
                                            	0:停机(千万不能把 initdefault 设置为 0 ) 
                                            	1:单用户模式
                                            	2:多用户,没有 NFS 不联网
                                            	3:完全多用户模式(标准的运行级)
                                            	4:保留,暂时没有用到
                                            	5:X11(xwindow) 图形化界面模式
                                            	6:重新启动 (千万不要把 initdefault 设置为 6 )
                                            
                                            1
                                            2
                                            3
                                            4
                                            5
                                            6
                                            7
                                            8
                                            9

                                            关机和重启命令用 init 0 和 init 6

                                            [root@localhost ~]# init 0
                                            #关机,也就是调用系统的 0 级别
                                            [root@localhost ~]# init 6
                                            #重启,也就是调用系统的 6 级别
                                            
                                            1
                                            2
                                            3
                                            4

                                            补充

                                            开机默认模式设置方式:

                                            [root@localhost ~]# vim /etc/inittab
                                            # inittab is no longer used when using systemd.
                                            #
                                            # ADDING CONFIGURATION HERE WILL HAVE NO EFFECT ON YOUR SYSTEM.
                                            #
                                            # Ctrl-Alt-Delete is handled by /usr/lib/systemd/system/ctrl-alt-del.target
                                            #
                                            # systemd uses 'targets' instead of runlevels. By default, there are two main targets:
                                            #
                                            # multi-user.target: analogous to runlevel 3
                                            # graphical.target: analogous to runlevel 5
                                            #
                                            # To view current default target, run:
                                            # systemctl get-default
                                            #
                                            # To set a default target, run:
                                            # systemctl set-default TARGET.target
                                            #
                                            ##查看 /etc/inittab 文件内容,
                                            [root@localhost ~]# systemctl get-default
                                            multi-user.target
                                            #命令 systemctl set-default 获取默认 init 级别
                                            #根据/etc/inittab的内容得知,multi-user.target: analogous to runlevel 3 
                                            #默认级别为 3 ,就是完全多用户模式(标准的运行级)
                                            
                                            1
                                            2
                                            3
                                            4
                                            5
                                            6
                                            7
                                            8
                                            9
                                            10
                                            11
                                            12
                                            13
                                            14
                                            15
                                            16
                                            17
                                            18
                                            19
                                            20
                                            21
                                            22
                                            23
                                            24
                                            edit icon编辑此页open in new window
                                            上一页
                                            linux压缩、解压缩命令
                                            下一页
                                            linux常用网络命令
                                            MIT Licensed
                                            Copyright © 2022 karin