linux引导过程与服务控制!

Posted 龙少。

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了linux引导过程与服务控制!相关的知识,希望对你有一定的参考价值。

一.linux系统引导过程

以centos7系统为例

1.bios加电自检

当机器上电之后,根据主板上bios的设置进行硬件的自检,如cpu、内存等并初始化,它找到可引导的硬盘之后把控制器给MBR。

2.MBR引导

硬盘启动时根据MBR的设置,将系统控制权传递给包含系统操作引导文件的分区;或者直接根据MBR 记录中的引导信息调用启动菜单。

3.grub2菜单

系统控制权传递给GRUB 以后,将会显示提供用于选择,并根据-选项加载linux内核文件。

4.加载内核

系统引导器程序会从本地硬盘中加载内核以及内存文件系统 initramfs,其中包含启动时所有必要的硬件内核模块、初始化脚本等。
从本地硬盘加载内核,此时控制权在内核;
检测内核(动态加载内核模块:modules:存放加载硬件驱动程序)并找到内核
找到内核之后boot loader加载内核时的同时产生initramfs:虚拟文件系统,需要通过initramfs挂载伪根并加载驱动程序;
驱动程序存在之后initramfs消失,此时系统挂载真正的根和文件系统安装驱动程序

5.初始化进程

在initramfs中找到驱动程序的所有硬件,然后作为PID 1从initramfs执行/lib/systemd/systemd,systemd启动initrd.target中所有单元,包括挂载/etc/fstab,然后从initramfs根文件系统切换到磁盘根目录并且systemd启动默认target(字符界面还是图形化界面)也就是/etc/systemd/system/default.target ,最后等待用户登陆。

二.运行级别所对应的systemd目标

init0:target
代表关机状态;
关机命令:init0或者shutdown

init1:rescue.targe
t单用户模式,主要用于修复系统功能

init2:multi-user.target
多用户模式,无网络,无NFS共享存储

init3:multi-user.target
命令模式,多用户模式,没有图形界面,安装最小化系统默认的就是init3

init4:multi-user.target
保留,未使用

init5:graphical.targrt
多用户模式,提供图形桌面操作环境

init6:reboot.target
重启
重启命令shutdown -r

使用runlevel可以查看当前系统的运行级别。

三.systemctl相关命令

systemctl是一个systemd工具,主要负责控制systemd系统和服务管理器

配置文件
/etc/systemd/system/
存放不同级别的开启自启服务

/run/systemd/system/
系统执行过程中所产生的服务脚本所在目录

/usr/lib/systemd/system
每个服务最主要的启动脚本设置

systemctl的相关命令

查看system的版本
systemctl --version

查看服务的状态
systemctl status firwalld service

开启服务
systemctl start firewalld.service

关闭服务 //systemctl stop firewalld.service

重启服务(相当于先停止再启动,服务的PID(进程ID号)会改变)
systemctl restart name.service

重新加载服务的配置文件(服务不会中断,PID不会改变)//更改过配置之后,在不停止服务的情况下,重新加载服务的配置文件
systemctl reload name.service

设置服务开机自启
systemctl enable firewalld.service

设置服务开机不自启
systemctl disable firewalld.service

查看服务是否开机自启
systemctl is-enabled firewalld.service

查看已启动服务列表
systemctl list-unit-files|grep enable

查看服务是否在启动成功状态
systemctl is-active firewalld:查看防火墙是否在启动成功状态

查看服务是否在启动失败状态
systemctl is-failed firewalld.service:查看防火墙是否在启动失败状态

屏蔽服务
systemctl mask name.service

取消屏蔽服务
systemctl unmask name.service

查看服务的system服务配置
systenctl cat kube-apiserver.service

查看当前系统默认启动的target
systemctl get-default

设置默认启动的target为multi-user.target
systemctl set-default multi-user.target

查看系统启动耗时
systemd-analyze等同于 systemd-analyze time

查看sshd服务的配置文件
systemctl cat sshd

以上是关于linux引导过程与服务控制!的主要内容,如果未能解决你的问题,请参考以下文章

Linux的引导过程与服务控制

引导过程与服务控制

Linux引导过程与服务控制(完)

linux引导过程与服务控制!

Linux引导过程与服务控制

Linux——引导过程与服务控制