一 开机启动过程
bios加电自检-->mbr-->grub-->加载内核文件-->启动进程
1 bios家电自检
检测硬件是否正常,然后根据bios中的启动项设置,去找内核文件
2 mbr
因为grup太大,第一个扇区存不下所有的grub程序,所以分为2部分指引硬件找到内核文件
当从本机硬盘中启动系统时,首先根据硬盘第一个扇区中MBR(主引导记录)的设备,将系统控制权传递给包含操作系统引导文件的分区,或者直接根据MBR记录中的引导信息调用启动菜单
3 grub
根据grub配置文件(grub.cfg)中记录的位置,去找到内核文件
对于Linux操作系统来说,GRBU(统一启动加载器)是使用最为广泛的多系统引导程序。系统控制权传递给GRUB以后,将会显示启动菜单给用户选择,并根据所选项(或采用默认值)加载Linux内核文件,然后将系统控制权转交给内核,
4 加载内核文件:把内核和镜像文件系统加载到内存中可以使用。
Linux内核是一个预先编译好的特殊二进制文件,介于各种硬件资源与系统程序之间,负责资源分配与调度。内核接过系统控制权以后,将完全掌控整个Linux操作系统的运行过程
5 启动进程
Linux内核首先将系统中的“/sbin/init”程序加载到内存中运行(运行中的程序称为进程),init进程负责完成一系列的系统初始化过程,左后等待用户进行登录,system
二.系统初始化进程
1. init进程
由Linux内核加载运行/sbin/init程序
init进程是系统中第一个进程
init进程的PID(进程标记)号永远为1
2. systemd进程
systemd是linux操作系统的一种init软件
centos7中采用全新的systemd启动方式,取代传统的sysvinit
centos7中运行的第一个init进程是/lib/systemd/system
区别:
init 串行启动后续的程序 一个一个按顺序启动
systemd 是并行启动程序 全部一起启动
路径:
/lib/systemd/system/*.service为结尾的文件
systemd能够识别并管理这些以.service为结尾的程序
centos6与centos7的区别
centos6使用init 串行启动后续程序,一个一个按顺序启动。
centos7使用systemd 并行启动程序,全部一起启动
systemd
systemd是系统的高级程序,代为管理系统上的服务程序
systemd:yum以及rpm安装的软件可以直接使用
systemctl具有启动,关闭,重启,开机自启等功能
systemd unit(单元):systemd方便管理程序,将程序按照特定的功能分成了很多单元服务,单元配置。
3 systemd单元进程
二 查看当前运行级别 runlevel 且级别的作用:
1
2
3
4
5
6
7
yum及rpm安装的软件可以直接使用systemctl去启动 关闭 重启 开机自启等功能
编译安装 不可以直接使用systemctl命令去管理程序 需要手写一个配置文件
systemd unit(单元) ,systemd方便管理程序,将程序按照特定的功能分成了很多单元
服务配置文件
[Unit]
Description=The nginx HTTP and reverse proxy server #描述软件的功能
[Service]
PIDFile=/apps/nginx/logs/nginx.pid # 方便使用 pid 号 进行操作 , 指明进程的 pid 号
ExecStart=/apps/nginx/sbin/nginx #使用绝对路径启动
ExecStop=/usr/bin/kill -s TERM $MAINPID #杀死进程
ExecReload=/apps/nginx/sbin/nginx -s reload #重新加载
[Install]
WantedBy=multi-user.target #安装子字符界面
四 编译安装nginx-systemctl ---然后用systemctl管理