1.bios加电自检
bios:检测硬件是否正常,然后根据bios中的启动项设置找内核文件
boot开机启动顺序(你可以把内核文件放在何处)
1.硬盘
2.移动设备,U盘,移动硬盘,光驱
3.网络启动
2.mbr
mbr(二进制):应grub太大第一个扇区存不下,所有的grub程序分为2部分,指引硬件找到内核文件。
3.grub
grub(高级语言):根据grub配置文件(grub.cfg)中的记录位置去找到内核文件
4.加载内核文件
加载内核:把内核运行在内存中
5.启动第一个进程
启动进程:启动第一个祖宗进程
区别:
版本 | 接口 | 特点 | 功能 |
---|---|---|---|
centos6 | 串口 | 速度较慢,效率低下 | 按顺序启动 |
centos7 | 并口 | 少进程,高效率 | 全部一起启动 |
与5比较,6可以解决依赖关系
按需启动
System新特性
yum以及rpm安装的软件可以直接使用systemctl去启动、关机、重启、开机自启
编译安装不可以使用systemctl命令去管理程序,需要手写一个配置文件
systemd unit(单元)Lsystemd方便管理程序,将程序按照特定的功能分成了很多单元
服务单元 写配置文件
文件路径
挂载
socket与服务程序分离
在systemd中不同类型的systemd对象被统一称为单元,是让系统知道该如何进行操作和管理资源的主要对象,所以systemd有许多单元类型。
systemd单元文件最初默认存放在/lib/systemd/system目录中,每当安装新的软件都会自动在这个目录中添加一个配置文件。
systemctl 命令用于管理各种类型的systemd单元,可以使用“systemctl -t help”命令来查询systemd支持的单元类型。
单元类型 | 扩展名 | 说明 |
---|---|---|
Service | .service 扩展名 | |
Socket | .socket | 描述一个进程间通信的套接字 |
Device | .device | 描述一个内核识别的设备文件 |
Mount | .mount | 描述一个文件系统的挂载点 |
Automount | .automount | 描述一个文件系统的自动挂载点 |
Swap | .swap | 描述一个内存交换设备或目录 |
Timer | .timer | 描述一个定时器(类似于cron的调度任务) |
Path | .path | 描述一个文件系统中文件或目录(path路径) |
Snapshot | .snapshot | 用于保存一个systemd的状态(snapshot快照) |
Scope | .scope | 使用systemd的总线接口以编程的方式创建外部进程 |
Slice | .slice | 描述Cgroup的一组通过层次组织的管理系统进程 |
Target | .target | 描述一组systemd的单元(target目标) |
service unit file文件通常由三部分组成:
[Unit]:用于提供unit的描述信息、unit行为及依赖关系
[Service]:与特定类型相关的专用选项
[Install]:由“systemctl enable”以及"systemctl disable“命令在实现服务启用或禁用时用到的一些选项
Unit格式说明:
以“#” 开头行后面的内容会被认为是注释
时间默认是秒
Unit常用的选项:
Description:描述信息
After:表示当前unit应该晚于哪些unit启动
Before:表示当前unit应该早于哪些unit启动
Requires:强依赖
Wants:弱依赖
Conficts:定义域units间的冲突
Service常用的选项:
EnvironmentFile:环境配置文件
ExecStart:指明启动unit要运行命令或脚本的绝对路径
ExecStartPre: ExecStart前运行
ExecStartPost: ExecStart后运行
ExecStop:指明停止unit要运行的命令或脚本
Restart:当设定Restart=1 时,则当次daemon服务意外终止后,会再次自动启动此服务
RestartSec: 设置在重启服务( Restart= )前暂停多长时间。 默认值是100毫秒(100ms)。 如果未指定时间单位,那么将视为以秒为单位。 例如设为"20"等价于设为"20s"。
PrivateTmp:设定为yes时,会在生成/tmp/systemd-private-UUID-NAME.service-XXXXX/tmp/目录
Install常用的选项:
Alias:别名,可使用systemctl command Alias.service
RequiredBy:被哪些units所依赖,强依赖
WantedBy:被哪些units所依赖,弱依赖
Also:安装本服务的时候还要安装别的相关服务
格式:systemctl [command] [unit.target]
command参数:
systemctl get-default 查看默认的运行级别
systemctl set-default 设置默认的级别
1.chkconfig centos6
service 服务程序 start
service 服务程序 stop
service 服务程序 restart
service 服务程序 reload
service 服务程序 status
再/etc/init.d/写一个同名文件的脚本(必须要有执行权限)
chkconfig --add 35 服务名称
chkconfig --level 35 服务程序 on 开机自启
chkconfig --level 35 服务程序 off 关闭开机自启
2.systemd centos7
systemctl start 服务名
systemctl stop 服务名
systemctl status 服务名
systemctl reload 服务名
systemctl restart 服务名
开机自启
systemctl enable 服务名
开机自启,并立即启动
systemctl enable --now 服务名
开机不自启
systemctl disable 服务名
开机不自启,并立即关闭
systemctl disable --now 服务名