linux开机启动的完整过程
bios加电自检----mbr----grub----加载内核文件----启动第一个进程
bios:检测硬件是否异常,然后根据bios中启动项设置,去找内核文件
boot启动顺序:你可以把内核文件放在何处?
1.硬盘,移动设备 2.u盘,移动光盘 3.网络启动
mbr:因为grub太大第一个扇区存不下所有的grub程序,所以分为2部分
指引硬件去找内核文件
grub:根据grub配置(grub.cfg)文件中记录的位置,去找内核文件(高级语言)
加载内核文件:把内核运行在内存中
启动进程:第一个进程
centos6的第一个进程:init
centos7的第一个进程:systemd
centos6和centos7的区别:普通用户的uid范围 第一个启动进程的不同
init和systemd的区别:init 串行启动后续的程序 一个一个按顺序启动
systemd是并行启动后续的程序 全部一起启动
完整流程:
加电后bios程序会自检硬件,硬件无故障后,会根据第一启动项去找内核,一般来说第一启动项是硬盘,找到硬盘后,会根据mbr的指引找到完整的grub程序,再根据grub的配置文件找到内核文件的具体位置,然后将内核文件加载到内存中运行,内存加载好后会启动第一个程序
服务程序
systemd 是系统级的程序,代为管理系统上的服务程序
linux操作系统是有运行级别的
0 关机
1 单用户(类似于Windows的急救模式)
2 字符界面(少些功能)
3 字符界面
4 字符界面 (从来没有过,保留下来了)
5 图形界面
6 重启
yum以及rpm安装的 软件可以直接使用 systemctl 去启动 关闭 重启 开机自启 等功能
编译安装 ,不可以直接使用 systemctl 命令 去管理程序 需要手写一个配置文件
常用命令:runlevel 查看当前运行级别
systemctl get-default 查看默认的运行级别
systemctl set-default 设置默认的级别
什么是服务程序?
1.一旦运行一直运行=不会退出
2.一般来说是后台运行,不会影响前台的操作
管理服务程序
开启(start),关闭(stop),重启(restart),重新加载配置文件(reload),查看状态(status),开机自启,开机不自启
centos6 chkconfig
service 服务程序 start
service 服务程序 stop
service 服务程序 restart
service 服务程序 reload
service 服务程序 status
在 etc/init.d/写一个同名文件的脚本(必须要有执行权限x)
chkconfig --level 35 服务程序 on 开机自启
chkconfig --level 35 服务程序 off 开机不自启
chkconfig --add 服务名称
systemd centos7
systemctl start 服务名1,服务名2... 开启服务
systemctl stop 服务名 关闭服务
systemctl reload 服务名 重新加载
systemctl status 服务名 查看状态
systemctl restart 服务名 重新启动
systemctl daemon-reload 刷新
systemctl enable 服务名 开机自启
systemctl enable --now 服务名 开机自启并立即启动
systemctl disable 服务名 开机不自启
systemctl disable --now 服务名 开机不自启并立即关闭
如果用 yum安装以及rpm安装会自动生成 一个配置文件,不需要我们手动加入
如果是编译安装则需要在 /lib/systemd/system/ 建立一个同名的配置文件(xxx.service)
[unit] 描述这个软件是做什么的,和软件的基本信息
[service] 怎么启动 怎么关闭 怎么重新启动 。。。
[install] 在哪个级别运行