Linux常用命令--关机重启命令
注意:服务器的关机重启操作是一个需要非常谨慎,需要慎重对待的操作!
1 shutdown命令
命令语法:[root@localhost~]#shutdown [选项] 时间
选项说明:
-c 取消前一个关机命令
-h 关机
-r 重启
示例:
[root@localhost~]#shutdown -h now 马上关机
[root@localhost~]#shutdown -h 22:00 晚上十点关机
[root@localhost~]#shutdown -r now 马上重启
[root@localhost~]#shutdown -r 22:00 晚上十点重启
补充说明:
(1)假设在设定一个定时关机之后,忽然发现设定的时间计算有误,需要重新设置定时关机时间,此时可以通过-c来取消前一次设定的定时关机命令:
[root@localhost~]#shutdown -c
(2)为什么推荐使用shutdown命令而不是其他的关机重启命令呢?
因为在早期的时候,只有shutdown命令会在关机和重启之前正确的保存它正在启动的服务,而服务只有在正确的保存关闭之后再关机才能保证数据的不丢失。当然,现在的Linux系统中绝大多数的关机重启命令也已经可以做到这一点了。
(3)服务器的关机重启为什么不能像个人笔记本电脑一样通过直接长按电源键来达到关机的目的,而要如此慎重的对待呢?
因为个人机一般都是自己一个人在用,一般在执行强制断电的时候,计算机硬盘是没有处在高速运转的状态的。但是我们也可能会有这样的体验,例如说我现在要用移动硬盘往我的笔记本里拷贝一个电影,当我正在拷贝的过程中突然断电了,那么这个时候,我的计算机硬盘以及移动硬盘损坏的机率都是非常的高的,因为它们正处于高速运转的过程中突然断电了。
同样的,服务器的使用就是这样一种原理。一般情况下,服务器不是一个人在用,而很可能是成百上千的用户都同时在访问。也就是说,一般情况下,服务器都是处于高速运转的状态,此时,如果我不采用正确的关机命令,那么突然一关机的话,就很有可能会出现问题。
所以,我们一定要注意,在正常的关机和重启之前应该正确地把正在运行的服务都先停掉,这样就能保证在进行关机或重启操作时,用户不能进行访问,无法接触到我的硬盘,硬盘才会空闲下来,不处于高速运转的状态。
(4)企业级的服务器一般数量比较多,大多采用的是Linux系统,而且可能都放在远地,所以千万不要随便对服务器采用shutdown -h now的命令。因为一旦大批量的远程服务器关机,只能通过手工逐一启动,那将会是一件很悲剧的事。
总结:
(1)关机重启之前一定要先停掉正在运行的服务,避免关机重启时硬盘因处于高速访问状态而造成崩溃。
(2)尽量使用shutdown这种相对比较安全的关机重启命令。
(3)一定要记住:服务器只能重启!不能关机!
2 其他关机命令
[root@localhost~]#halt
[root@localhost~]#poweroff (直接断电)在服务器上慎用此命令
[root@localhost~]#init 0
3 其他重启命令
[root@localhost~]#reboot
[root@localhost~]#init 6
补充说明:
(1)inti 0和init 6有什么特别的含义吗?
这个涉及到如下所示的系统的运行级别:
0 关机
1 单用户
2 不完全多用户,不含NFS服务
3 完全多用户
4 未分配
5 图形界面
6 重启
其中,init 0 就表示调用0运行级别;init 6 就表示调用6运行级别。
(2)什么是单用户?
单用户类似于Windows系统中的安全模式,亦即:启动最小的服务。用来做一些修复功能的,且只有root身份可以登录,其他用户均不可登录。
单用户只启动最核心的程序,其他多余的、附加的程序都不需要,甚至连网络都不需要(因为可能会有写问题都是由这些附加程序导致的,所以都不需要)。
(3)1、 2 、3 都是表示没有图形界面的;4 表示未使用的;5 表标准的图形界面。其中,2和3都是字符界面,区别在于:3是完全的字符界面,2是不包含NFS服务的字符界面。其中,NFS服务,即network file system网络文件系统,是用于实现两个Linux系统或Linux与Unix系统之间的文件共享的。
(4)既然NFS有这么方便的功能,为什么还要有一个不包含该功能的运行级别呢?
因为NFS的用户验证机制比较弱,可能不是太安全,存在一定的安全隐患,所以不太建议使用。
(5)怎么查询记忆这些运行级别?
在Linux系统中的etc目录下有一个名为inittab的文件,也就是init这个进程的配置文件。里面记录了Linux系统运行级别的详细信息。可通过如下的命令打开该配置文件查看:
[root@localhost~]#cat /etc/inittab
inittab文件的详细内容如图1所示:
图1 运行级别详细信息
可以看到,在该配置文件中大部分都是注释(注意:在Linux系统的配置文件中,以#开头的行表示注释行),真正生效的就只有最后一行:
id:3:initdefault:
表示系统开机之后就进入运行级别3,即进入完整的字符界面;同样的,如果是5,就表示进入完整的图形界面(安装了图形界面的前提下)。
说明:
1)如果此处设置成了0或6,表示系统一开机就进入关机或重启模式,那么你的系统就一直起不来了。所以在列举的运行级别中0和6后面都有提示不可设置为默认运行级别:Do not setinitdefault to this。
2)X11:在Linux中大写的X一般都是指的图形界面,后面的数字表示版本
3)命令行“cat /etc/inittab”的作用不仅仅是用来查看运行级别的,而主要是用来通过修改实际有效行“id:3:initdefault:”中的数字来修改系统默认的运行级别的。但是要注意不能修改成0,也不能修改成6。另外,在修改的过程中一定要谨慎,不要误删了分隔符,删除了分隔符就不符合格式了,严重的甚至会导致系统崩溃或无法启动,所以在修改之前最好做一下备份。
4)怎么样查看当前的运行级别呢?
可以通过如下的命令查看系统当前的运行级别:
[root@localhost~]#runlevel
命令执行结果显示如图2所示:
图2 系统当前的运行级别
可以看到,系统当前的运行级别是3。而在数字3之前还有一个数字,用来表示进行过修改操作之前的一个运行级别。
因为此处是开机即进入运行级别3,所以在之前是没有对运行级别进行过修改操作的,故这里显示的是字母N,表示NULL,空的意思。
4 退出登录命令(关乎信息安全)
[root@localhost~]#logout
退回到登录界面
说明:
在企业级服务器中一定要时刻谨记操作完了以后一定要退出当前用户登录方可离开,避免其他不知情人员在当前用户未退出的情况进行相关的命令操作造成重大的事故。就好比如说个人笔记本在使用的过程中,如果本人暂时有事离开一下,最好把笔记本锁屏,避免有其他人趁机使用你的电脑进行恶作剧甚至是恶意毁坏,盗取资料。
谨记:人走退出!要有安全意识!