1引导过程总览
-
- 开机自检(BIOS)
- MBR引导
- GRUB菜单
- 加载内核(kernel)
- 初始化进程(centos 6:init,centos 7:systemd)
ps -ef 查看进程
2 系统初始化进程
2.1 init进程
由Linux内核加载运行/sbin/init程序
init进程是centos6系统启动时第一个进程
init进程的PID(进程标记)号永远为1
2.2 systemd进程
Systemd是centos7系统启动时第一个进程(/lib/systemd/systemd)
CentOS7中采用全新的Systemd启动方式,取代传统的SysVinit
3 运行级别对应的target目标
文件路径:/lib/systemd/system/和/usr/lib/systemd/system/
运行级别 | Systemd的target | 说明 |
0 | shutdown.target | 关机状态,使用该级别时将会关闭主机 |
1 | rescue.target | 单用户模式,不需要密码验证即可登录系统,多用于系统维护 |
2 | multi-user.target | 不支持网络的多用户模式。默认等同于3 |
3 | multi-user.target | 字符界面的完整多用户模式。大多数服务器主机运行在此级别 |
4 | multi-user.target | 系统未使用。默认等同于3 |
5 | graphical.target | 图形界面的多用户模式,提供了图形桌面操作环境 |
6 | reboot.target | 重新启动,使用该级别时将会重启主机 |
4 Unit单元
Unit单元表示不同类型的systemd对象,让系统去操作和管理资源的统称。
单元类型 扩展名 说明
Service .service 描述─个系统服务
Socket .socket 描述─个进程间通信的套接字
Device .device 描述─个内核识别的设备文件
Mount .mount 描述—个文件系统的挂载点
Automount .automount 描述—个文件系统的自动办挂载点
Swap .swap 描述─个内存交换设备或交换文件
Path .path 描述─个文件系统中文件或目录
Timer .timer 描述─个定时器《用于实现类似cron的调度任务)
Snapshot .snapshot 用于保存一个systemd的状态
Scope .scope 用于创建外部进程
Slice .slice 描述居于Cgroup的一组通过层次组纷织的管理系统进程
Target .target 描述一组systemd的单元
5 Linux系统的运行级别
查看运行级别
runlevel
systemctl get-default
切换运行级别
init 运行级别 (临时切换)
systemctl isolate multi-user.targer (init3)
systemctl set-default multi-user.target设置字符页面
systemctl set-default graphical.target设置图形页面
init的命令参数是运行级别所对应的数字
systemctl的命令参数是具体的target
6 系统服务介绍
在linux系统中,有一些特殊程序,启动后会持续在后台运行,等待用户或其他软件调用,这种程序称为服务。
按照功能分类
系统服务:服务的对象是linux系统本身;
网络服务:服务的对象是网络中的客户端;
7 系统服务控制
系统服务控制(centos6默认使用service)
Centos6命令格式(eg:sshd):
service 服务名称 控制类型
service sshd start 启动sshd服务
Centos7命令格式(eg:sshd):
systemctl 控制类型 服务名称
systemctl start sshd.service
控制类型:
start 启动
stop 停止
restart 重新启动
reload 重新加载
status 查看服务状态
disable 开机不自启
enable 开机自启
is-enabled 查看开机启动状态
is-active 查看服务是否启动成功
8 系统服务优化启动过程
ntsysv工具:
提供一个交互式、可视化窗口
可以在字符终端运行
便于集中管理多个服务
systemctl工具:
不提供交互式、可视化窗口
管理单个服务效率更高
9 服务开启自启动控制
9.1 centos 6系统服务开机目后动控制-chkconfig
查看系统服务的开机启动状态(目前不能用):
chkconfig --list 服务名称
设置系统服务的开机启动状态:
chkconfig --level 2345 服务名称 on 将服务设置为开机启动
chkconfig --level 2345 服务名称 off 将服务设置为开机不启动
9.2 centos7系统服务开机目后动控制-systemctl
查看系统服务的开机启动状态:
systemctl is-enabled 服务名称
设置系统服务的开机启动状态:
systemctl enable 服务名称 将服务设置开机自启动
systemctl disable 服务名称 将服务设置开机不启动
systemctl enable 服务名称 --now 将服务启动并设置开机自启动.
systemctl disable 服务名称 --now 将服务关闭并设置开机不启动
10 Centos6和Centos7系统服务的区别
systemd控制的相关文件 | CentOS6 | CentOS7 |
服务启动的脚本启动路径 | /etc/init.d | /usr/lib/systemd/system |
开机自启服务存放路径 | /etc/rcN.d | /etc/systemd/system/multi-user.target.wants/ |
默认运行级别配置 | /etc/inittab | /etc/systemd/system/dcfault.target |
11 服务启动的脚本文件
12 Systemd其他命令
12.1 主机名查看与修改
主机名的配置文件 /etc/hostname
hostnamectl set-hostname XXXX(永久修改)
或
hostname XXXX (临时修改)
查看主机名状态
hostnamectl [status]
12.2 语言查看与设置
localectl 查看语言
localectl set-locale LANG=zh_CN.UTF-8 (永久修改语言)
LANG=zh_CN.UTF-8(临时修改)
12.3 日期、时间、时区设置
永久修改:
timedatectl set-time YYYY-MM-DD 修改日期
timedatectl set-time HH:MM:SS 修改时间
timedatectl set-timezone Asia/Shanghai 修改时区
临时修改:
date -s YYYY-MM-DD
查看系统的用户信息:
loginctl
13 修复MBR扇区故障
故障原因:
病毒、木马等造成的破坏
不正确的分区操作、磁盘读写误操作
故障现象:
找不到引导程序,启动中断
无法加载操作系统,开机后黑屏
解决思路:
应提前作好备份文件
以安装光盘引导进入急救模式
从备份文件中恢复
14 Selinux
目录
9.1 centos 6系统服务开机目后动控制-chkconfig
9.2 centos7系统服务开机目后动控制-systemctl
介绍
Selinux (Security Enhanced Linux)是由美国国家安全局(NSA)开发的。它已被植入到了Linux系统的内核当中,增强传统Linux操作系统的安全性。主要作用是最大限度地减小系统中服务进程可访问的资源。
配置文件位置:/etc/selinux/config 和/etc/sysconfig/selinux
查看selinux状态
getenforce
临时设置selinux启动状态
setenforce 0/1
enforing:强制模式,代表selinux运行中,启用所有的策略,所有违反策略的规则都拒绝
permissive:宽容模式,代表selinux运行中,所有违反策略的规则只记录并不会拒绝
disbaled:关闭模式,代表selinux关闭状态