1.开机启动流程
- centos6
Linux系统的启动过程并不是大家想象中的那么复杂,其过程可以分为5个阶段:
-
内核的引导。
-
运行 init(6)。 sentos7 运行父进程(systemd) pstree进行查看父进程systemd -sp展开查看
-
系统初始化。
-
建立终端 。
-
用户登录系统。
- centos7
6和7启动的祖宗进程不一样,加载初始化脚本的位置也不一样,其他都一样
2.运行级别?
1.什么是运行级别,运行级别就是操作系统当前正在运行的功能级别(一般用3命令行)
System V init运行级别 systemd目标名称 作用 0 runlevel0.target, poweroff.target 关机 1 runlevel1.target, rescue.target 单用户模式 2 runlevel2.target, multi-user.target 3 runlevel3.target, multi-user.target 多用户的文本界面 4 runlevel4.target, multi-user.target 5 runlevel5.target, graphical.target 多用户的图形界面 6 runlevel6.target, reboot.target 重启
- centos7
命令行界面 <— 生产必用
0 关机
1 单用户 (破解密码)
2 没使用
3 命令行模式 | 字符 <–生产必用
4 没有使用
5 图形界面
6 重启
2.centos6系统的运行级别
/etc/inittab #运行级别文件,修改下面数字就可以
1.临时
runlevel 查看当前级别
init Number(级别数字) 切换级别
2.永久 /etc/inittab
id:5:initdefault #开机启动什么级别(5就是图形化界面)
3.centos7运行级别
#multi-user.target: analogous to runlevel 3
#graphical.target: analogous to runlevel 5
#查看运行级别
[root@container ~]# runlevel
N 3
N 上一次的级别是什么 N表示上一次没有的意思
3 当前正在使用的级别
#查看运行级别
[root@syc~]# systemctl get-default
multi-user.target
#修改默认运行级别为5图形化界面再次进行查看
永久生效!!
#修改默认运行级别
[root@syc~]# systemctl set-default graphical.target
Removed symlink /etc/systemd/system/default.target.
Created symlink from /etc/systemd/system/default.target to /usr/lib/systemd/system/graphical.target.
#进行查看级别
[root@syc~]# systemctl get-default
graphical.target
centos7在读取运行级别时,假设我们使用的是multi-user(三级别),那么则会加载该目录下的所有服务资源(设置的开机启动服务会在这个下面)
/etc/systemd/system/multi-user.target.wants/
这一块,可以通过systemctl进行添加和删除:
systemctl enable ServiceName #加入开机自启
systemctl disable ServiceName #关闭开机自启
演示将Nginx符号加入开机自启就会在/etc/systemd/system/multi-user.target.wants/
目录下
[root@syc~]# ls /etc/systemd/system/multi-user.target.wants/| grep nginx #过滤查看发现没有
[root@syc~]# systemctl enable nginx.service #添加开机自启
Created symlink from /etc/systemd/system/multi-user.target.wants/nginx.service to /usr/lib/systemd/system/nginx.service.
[root@syc~]# ls /etc/systemd/system/multi-user.target.wants/| grep nginx #再次查看有了
nginx.service
[root@syc~]# systemctl disable nginx.service #关闭开机自启
Removed symlink /etc/systemd/system/multi-user.target.wants/nginx.service.
[root@syc~]# ls /etc/systemd/system/multi-user.target.wants/| grep nginx
如果使用的是五级别(graphical)就加载/etc/systemd/system/graphical.target.wants/
我现在正在运行Nginx程序,和我去设定Nginx程序开机启动和关闭?
是否影响该Nginx程序的正常运行 不会!
3.systemd介绍、使用
systemd相关配置文件
/usr/lib/systemd/system/ #类似Centos6系统的启动脚本,/etc/init.d/
/etc/systemd/system/ #类似Centos6系统的/etc/rc.d/rcN.d/
/etc/systemd/system/multi-user.target.wants/
#systemd管理服务相关命令
systemctl管理服务的启动、重启、停止、重载、查看状态等常用命令
针对当前正在运行的程 序
systemctl命令 作用
systemctl start crond.service 启动服务
systemctl stop crond.service 停止服务
systemctl restart crond.service 重启服务
systemctl reload crond.service 重新加载配置
systemctl status crond.servre 查看服务运行状态
systemctl is-active sshd.service 查看服务是否在运行中
systemctl mask crond.servre 禁止服务运行
systemctl unmask crond.servre 取消禁止服务运行
当我们使用systemctl启动一个守护进程后,可以通过sysctemctl status查看此守护进程的状态
状态 描述
loaded 服务单元的配置文件已经被处理
active(running) 服务持续运行
active(exited) 服务成功完成一次的配置
active(waiting) 服务已经运行但在等待某个事件
inactive 服务没有在运行
systemctl status(查看服务状态)或systemctl is-active(查看是否运行)查看:
enabled 服务设定为开机运行
disabled 服务设定为开机不运行
static 服务开机不启动,但可以被其他服务调用启动
systemctl 设置服务开机启动、不启动、查看各级别下服务启动状态等常用命令
systemctl命令(7系统) 作用
systemctl enable crond.service 开机自动启动
systemctl disable crond.service 开机不自动启动
systemctl list-unit-files 查看各个级别下服务的启动与禁用
systemctl is-enabled crond.service 查看特定服务是否为开机自启动
systemctl daemon-reload 创建新服务文件需要重载变更(更改服务后要启动不成功时会提示执行这个命令)
4.单用户模式 (破解密码,配置文件修改错误造成无法启动系统)
1.忘记ROOT密码。
2.修改错配置文件,造成系统无法启动成功
第1步:重启Linux系统主机并出现引导界面时,按下键盘上的e键进入内核编辑界面
第2步:在linux16这行的后面添加enforcing=0 init=/bin/bash,然后按下Ctrl + X组合键来运行修改过的内核程序
第3步:大约5秒过后,进入到系统的单用户模式,依次输入以下命令,等待系统重启操作完毕,然后就可以使用新密码来登录Linux系统了。命令行执行效果如图所示。