linux系统服务
linux系统启动流程
linux系统的基本启动流程大概包含以下这些内容:
- 内核的引导。
- 运行 init/systemd。
- 系统初始化。
- 建立终端 。
- 用户登录系统。
具体启动流程如下:
运行级别
centos6 linux运行级别有如下几种:
0:关机
1:单用户模式
2:没有网络的字符界面(基本不用)
3:字符界面
4:未被使用
5:图形界面
6:重启
centos7 linux常用的运行级别为:
multi-user.target 字符界面
graphical.target 图形界面
使用runlevel可以查看运行级别和上一次的运行级别。
centos 7查看当前运行级别的命令是systemctl get-default
centos 7修改当前运行级别的命令是systemctl set-default 级别名
linux systemd管理
linux系统在7以前使用的都是init进程来作为祖宗进程,但是init有两个缺点:
- 由于是串行启动,所以启动较慢,而且前一个进程无法启动的话,下一个进程也无法启动。
- init需要加载很多脚本文件,脚本多且复杂。
systemd与init相比较的优势在于:
- systemd是并行启动,所有进程同时启动,启动过程会快很多。
- centos7关机只关闭正在运行的服务,而centos6则会全部都关闭一次。
- centos7服务的启动于停止不适用脚本进行管理。也就是说/etc/init.d下没有脚本文件。
- centos7使用systemd解决原有模式的缺陷,service命令关闭服务时,只关闭父进程,容易产生孤儿进程。
我们在centos7中使用service去管理服务时,实质上还是使用systemctl来管理服务,只是有一个脚本文件对service命令进行了一次转换。
systemd的配置文件是如下文件:
/etc/systemd/system/multi-user.target.wants/
systemctl使用方法:
start :启动服务
stop :停止服务
restart :重启服务
reload : 重载配置
status : 查看服务运行状态
enable :设置为开机自启
disable : 设置为开机不自启
mask :禁止某个服务的运行
umaks :取消禁止某个服务的运行
daemon-reload :创建服务文件需要重载变更
systemctl list-unit-files :查看各个级别下服务的启动与禁用
systemctl is-enabled crond.service :查看特定服务是否为开机自启动
单用户模式
用于解决以下问题:
-
忘记root密码。
1)重新启动或开启CentOS7.6系统,按“e”进入编辑界面
2)找到以字符串“Linux16”开头的行,将光标移动到该行的结尾,然后输入“enforcing=0 init=/bin/bash”,并且把这一行中的ro修改为rw
3)配置完成后,按“Ctrl-x”组合键以单用户模式启动Linux
4)配置完后,执行exec /sbin/init命令重启系统。
5)重启系统后验证修改后的密码是否能登录。 -
配置文件修改错误
1)使用上面的方法进入单用户模式
2)在修改内核时把里面的ro修改为rw
3)把错误的配置文件修改成为正确的
4)修改完成后,使用exec /sbin/init重启系统
救援模式
用于解决以下问题:
- 误删除grub文件
- 拷贝出坏掉的系统中的重要的数据
- 修复MBR
使用救援模式的方法如下:
1)先连接光盘
2)把第一启动设备设置为光盘
3)重启系统
4)进入救援模式
5)选择rescue a CentOS system
6)选择continure
7)挂载/mnt/sysimage/
6)进入系统,完成需要做的操作后退出并重启
7)进入救援模式,从本地硬盘引导进入系统