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] 在哪个级别运行
? ? ? ? ? ? ? ? ??