1、Linux 运行级别 CentOS 6
2、Linux 运行级别 CentOS 7
2.1、启动流程
CentOS7中我们的初始化进程变为了systemd。执行默认target配置文件/etc/systemd/system/default.target(这是一个软链接,与默认运行级别有关)。然后执行sysinit.target来初始化系统和basic.target来准备操作系统。接着启动multi-user.target下的本机与服务器服务,并检查/etc/rc.d/rc.local文件是否有用户自定义脚本需要启动。最后执行multi-user下的getty.target及登录服务,检查default.target是否有其他的服务需要启动。
注意:/etc/systemd/system/default.target指向了/lib/systemd/system/目录下的graphical.target或multiuser.target。而graphical.target依赖multiuser.target,multiuser.target依赖basic.target,basic.target依赖sysinit.target,所以倒过来执行。
2.2、CentOS7 的运行级别简化
- multi-user.target 等价于原运行级别 3(多用户有网,无图形界面)
- graphical.target 等价于原运行级别 5(多用户有网,有图形界面)
2.3、查看当前运行级别
[root@localhost etc]# systemctl get-default
multi-user.target
2.4、修改当前运行级别
[root@localhost etc]# systemctl set-default graphical.target
centos7中取消了通过修改配置文件设置系统默认运行级别
[root@localhost etc]# cat /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 #类似运行级别3
# graphical.target: analogous to runlevel 5 #类似运行级别5
#
# To view current default target, run:
# systemctl get-default #查看系统运行级别
#
# To set a default target, run:
# systemctl set-default TARGET.target #修改系统默认运行级别
3、关机重启命令
3.1、关机重启命令汇总
halt | 关机 | root用户 | halt:只关闭系统,电源还在运行 halt -p:关闭系统,关闭电源(先执行halt,再执行poweroff) |
poweroff | 关机 | root用户 | poweroff会发送一个关闭电源的信号给acpi |
reboot | 重启 | root用户 | |
shutdown | -h:关机 -r:重启 -c:取消shutdown操作 | root用户 | shutdown实际上是调用init 0, init 0会cleanup一些工作然后调用halt或者poweroff shutdown -r now:一分钟后重启 shutdown -r 05:30:最近的5:30重启 shutdown -r +10:十分钟后重启 |
init | init 0:关机 init 6:重启 | root用户 | init:切换系统的运行级别 |
systemctl | systemctl halt [-i]:关机 systemctl poweroff [-i]:关机 systemctl reboot [-i]:重启 | 普通用户 超级用户 | 普通用户需要加-i root用户不需要加-i |
(1)sync (功能描述:将数据由内存同步到硬盘中)
(2)halt (功能描述:停机,关闭系统,但不断电)
(3)poweroff (功能描述:关机,断电) (
(4)reboot (功能描述:就是重启,等同于 shutdown -r now)
在关机或者重启之前,执行3至4次sync,将在内存中还未保存到硬盘的数据更新到硬盘中,否则会造成数据的丢失。执行sync时要以管理员的身份运行,因为管理员具有所有文件的权限,而普通用户只具有自己的部分文件的权限。
3.2、shutdown命令
基本格式:shutdown [选项] [时间] [警告信息]
选项:
- -h:关机
- -r:重启
- -c:取消shutdown执行的关机或者重启命令
- -k:不关机,发出警告
时间:
- shutdown:一分钟后关机(默认)
- shutdown now:立刻关机
- shutdown 10:10分钟后关机
- shutdown 05:00:5点关机
示例:
shutdown -r now:系统立马重启(等同于 reboot shutdown -r 05:30:最近的5:30重启 shutdown -r 10:十分钟后重启
shutdown -h now:立马关机(等同于 poweroff shutdown -h 05:30:最近的5:30关机 shutdown -h +10:十分钟后关机
shutdown -c:取消上面的关机重启操作
shutdown -k +10 “I will shutdown in 10 minutes”:10分钟后并不会真的关机,但是会把警告信息发给所有的用户。
4、sync命令
sync :linux同步数据命令,将数据由内存同步到硬盘中,包含已修改的 i-node、已延迟的块 I/O 和读写映射文件。如果不去手动的输入sync命令来真正的去写磁盘,linux系统也会周期性的去sync数据。
[root@hadoop100 桌面]#sync
使用场景: 1.在 关机或者开机之前最好多执行这个几次,以确保数据写入硬盘。 2.挂载时,需要很长时间的操作动作(比如,cp 大文件,检测文件),在这个动作之后接sync。 3.卸载U盘或其他存储设备,需要很长时间,使用sync。
经验技巧
Linux 系统中为了提高磁盘的读写效率,对磁盘采取了 “预读迟写”操作方式。当用户 保存文件时,Linux 核心并不一定立即将保存数据写入物理磁盘中,而是将数据保存在缓 冲区中,等缓冲区满时再写入磁盘,这种方式可以极大的提高磁盘写入数据的效率。但是, 也带来了安全隐患,如果数据还未写入磁盘时,系统掉电或者其他严重问题出现,则将导 致数据丢失。使用 sync 指令可以立即将缓冲区的数据写入磁盘。