一 开机启动过程
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操作系统的运行过程
centOS7系统中,默认内核文件位于
5 启动进程=init进程初始化
Linux内核首先将系统中的“/sbin/init”程序加载到内存中运行(运行中的程序称为进程),init进程负责完成一系列的系统初始化过程,最后等待用户进行登录。
总结:加载硬件驱动程序,内核把init进程加载到内存中运行
二.系统初始化进程
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具有启动,关闭,重启,开机自启等功能
编译安装不可以直接使用systemct命令去管理程序,需要手写一个配置文件
“/boot/vmlinuz-3.10.0-514.e17.x86_64”
3 systemd单元进程
二 查看当前运行级别 runlevel 且级别的作用:
1
2
3
4
5
6
7
yum及rpm安装的软件可以直接使用systemctl去启动 关闭 重启 开机自启等功能
编译安装 不可以直接使用systemctl命令去管理程序 需要手写一个配置文件
systemd unit(单元) ,systemd方便管理程序,将程序按照特定的功能分成了很多单元
service unit file 由三部分组成
unit service install
unit段的常用选项
description
After
Requires
Wants
Conflicts
service段的常用选项
simple
forking
oneshot
dbus
notify
idle
install段的常用选项
alias
requiredBy
WantedBy
Also
服务配置文件
[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管理
systemctl get -default #查看默认运行级别systemctl set -default #设置默认运行级别target #关机rescue.target #单用户multi-user.target #字符界面graphical.target #图形界面
三.修复mbr扇区故障
①先添加一块硬盘,(刷新磁盘?)再分区好(fdisk /dev/sdb)
②将备份文件复制到新盘sdb1
③模拟破坏
服务程序管理
一旦运行一直运行不会退出
一般后台不会影响前台操作
chkconfig centos6
chkconfig --add
chkconfig --list
chkconfig --35 服务程序 on 开机自启
chkconfig --35 服务程序 off 关闭开机
systemd centos7
四 Linux 运行级别切换
runlevel
查看切换运行级别与当前运行级别
systemctl
查看默认的运行级别
设置永久运行级别
ln -sf /lib/systemd/system/multi-user.target /etc/systemd/
system/default.target systemctl set-default multi-user.target