Linux系统的引导过程与服务控制

目录

一、Linux操作系统引导过程

二、Linux系统服务控制

系统初始化进程

三、运行级别切换

*运行级别及切换

Linux系统的运行级别

四、优化开机自动加载服务

五、修复MBR扇区故障


一、Linux操作系统引导过程

主要步骤

  1. 开机自检:        检测硬件设备,找到能够引导系统的设备,如硬盘。
  2. MBR引导:        运行MBR扇区里的主引导程序GRUB。
  3. 启动GRUB菜单: 系统读取grub配置文件(/boot/grub2/grub.cfg),获取内核的设置和位置,并在屏幕显示grub菜单页面。
  4. 加载Li nux内核: 把内核加载到内存,将系统控制权交接给内核。
  5. Init进程初始化:   内核将init进程加载到内存中运行,并把init进程作为系统的第一个进程。
  6. 系统初始化启动内核模块,执行运行级别的启动脚本ls /etc/rc.等。

init进程的文件位于 /sbin/init -> /lib/systemd/systemd  ,init进程PID号固定为 1 ,是系统中其它所有进程的父进程。

二、Linux系统服务控制

系统初始化进程

init进程

  • 由 Linux 内核加载运行 /sbin/init 程序
  • init进程是系统中第一个进程,是所有进程的父进程
  • init进程的PID(进程标记)号永远为1

Systemd

  • Systemd是Linux操作系统的一种init软件
  • CentOS7中采用全新的Systemd启动方式,取代传统的SysVinit
  • CentOS7中运行的第一个init进程是/lib/systemd/systemd
单元类型
单元类型扩展名说明
Service.service描述一个系统服务
Socket.socket描述一个进程间通信的套接字
Device.device描述一个内核识别的设备文件
Mount.mount描述一个文件系统的挂载点
Automount.automount描述一个文件系统的自动挂载点
Swap.swap描述一个内存交换设备或交换文件
Path.path描述一个文件系统中文件或目录
Timer.timer描述一个定时器(用于实现类似cron的调度任务)
Snapshot.snapshot用于保存一个systemd的状态
Scope.scope使用systemd的总线接口以编程的方式创建外部进程
Slice.slice描述居于Cgroup的一组通过层次组织的管理系统进程
Target.target描述-组systemd的单元

系统服务控制

systemctl 控制类型 服务名称

控制类型

  • start:启动
  • stop:停止
  • restart:重新启动
  • reload:重新加载
  • status:查看服务状态

三、运行级别切换

*运行级别及切换

运行级别systemd的target说明切换切换
0power.target关机状态,使用该级别时将会关闭主机init 0 systemctl isolate poweroff.target
1resue.target单用户模式,不需要密码验证即可登录系统,多用于系统维护init 1 systemctl isolate rescue.target
2multi-user.target用户定义/域特定运行级别。默认等同于3
3multi-user.target字符界面的完整多用户模式,大多数服务器主机运行在此级别init 3systemctl isolate multi-user.target
4multi-user.target用户定义/域特定运行级别。默认等同于3
5graphical.target图形界面的多用户模式,提供了图形桌面操作环境init 5systemctl isolate graphical.target
6reboot.target重新启动,使用该级别时将会重启主机init 6systemctl isolate reboot.target

Linux系统的运行级别

查看运行级别

  • runlevel命令:runlevel只能查看切换运行级别与当前运行级别
  • systemctl工具:systemctl时能查看默认的运行级别

临时切换运行级别

  • init命令:Init的命令参数是运行级别所对应的数字
  • systemctl工具:systemctl的命令参数是具体的target

四、优化开机自动加载服务

服务开机自启管理

systemctl enable|disable [--now] 服务名[.service]       # --now选项可实现立即开启|关闭服务
systemctl is-enabled 服务名[.service]
ntsysv    #图形化管理开机自启
chkconfig --add 服务名                             #服务名就是 /etc/init.d/ 目录下的脚本文件名
chkconfig --level 运行级别列表  服务名  on|off     #开启|关闭服务在哪些运行级别下开机自启
chkconfig --list 服务名                            #查看自启状态
runlevel         #查看上一次的运行级别 和 当前的运行级别
systemctl get-default    #查看当前的默认运行级别systemctl set-default multi-user.target|graphical.target      #设置默认运行级别
等效于 ln -s -f /usr/lib/systemd/system/multi-user.target|graphical.target  /etc/systemd/system/default.target

五、修复MBR扇区故障

如果是 MBR 的GRUB主引导程序被破坏了

  1. 在急救模式下使用备份文件恢复          dd if=备份文件  of=/dev/sda  bs=446  count=1
  2. 在急救模式下重建MBR的GRUB主引导程序   chroot /mnt/sysimage   ->   grub2-install /dev/sda

如果是GRUB配置文件被删了

  1. 在急救模式下重建GRUB配置文件  chroot /mnt/sysimage   ->   grub2-mkconfig -o /boot/grub2/grub.cfg

如果是root密码忘记了

  1. 在急救模式下   先切换系统根环境 chroot /mnt/sysimage   ->  passwd root
  2. 在GRUB菜单按 e 键,修改内容 
    linux16 /vmlinuz-3.10.0-1160.71.1.el7.x86_64 root=UUID=a99fd431-dc10-4233-a655-3c4b8d710624 ro rhgb quiet LANG=zh_CN.UTF-8     #这行后面追加下行配置
    rw single init=/bin/bash           #再按 ctrl + x 重启系统
  3. 再在bash界面输入 passwd root 修改密码  ->  touch /.autorelabel  -->   exec /sbin/init
     

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/823434.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

winform入门篇 第13章 菜单栏

菜单栏 本章内容 菜单栏 工具栏 右键菜单 重点是右键菜单的实现。 菜单栏 MenuStrip,支持可视化编辑 添加 MenuStrip 添加菜单、菜单项、分隔线给菜单项设置属性 —Name 字段名,Text 文本显示,Image:图标 给菜单项添加事件处理(双击即可) 1.添加菜单…

数据库(MYSQL):SQL分类之DDL详解

1.SQL简介 1.SOL通用语法 1.SQL语句可以单行或多行书写,以分号结尾。 2.SQL语句可以使用空格/缩进来增强语句的可读性。 3.MySQL数据库的SQL语句不区分大小写,关键字建议使用大写, 4.注释: 单行注释…

在属性值中使用 JavaScript 表达式进行运算

在 Vue 模板中,属性值通常被解析为字符串。如果你想要在属性值中使用 JavaScript 表达式进行运算,可以使用冒号 : 将属性值声明为 JavaScript 表达式。这样,Vue 就会将属性值解析为 JavaScript 表达式,并且计算其结果,…

C# linq 根据多字段动态Group by

实现类&#xff1a; public static class LinqHepler {/// <summary>/// 根据单个字段动态Group/// </summary>/// <typeparam name"T"></typeparam>/// <param name"source"></param>/// <param name"prop…

Mysql 事物阻塞

1、查看现有事物&#xff08;锁&#xff09;&#xff0c;批量生成 kill 命令 select CONCAT(kill , trx_mysql_thread_id, ;) as kill_command, a.* from information_schema.innodb_trx as a -- where trx_query is null 2、查看指定数据库的线程&#xff0c;及其对应的事…

OSPF的P2P和Broadcast

OSPF为什么会有P2P和BROADCAST两种类型 OSPF&#xff08;开放最短路径优先&#xff09;协议中存在P2P&#xff08;点对点&#xff09;和BROADCAST&#xff08;广播多路访问&#xff09;两种网络类型&#xff0c;主要是为了适应不同类型的网络环境和需求。具体分析如下&#xf…

Jmeter 压测-Jprofiler定位接口相应时间长

1、环境准备 执行压测脚本&#xff0c;分析该接口tps很低&#xff0c;响应时间很长 高频接口在100ms以内&#xff0c;普通接口在200ms以内 2、JProfiler分析响应时间长的方法 ①JProfiler录制数据 压测脚本&#xff0c;执行1-3分钟即可 ②分析接口相应时间长的方法 通过Me…

Python 12306抢票脚本

请注意&#xff0c;编写或使用抢票脚本可能违反相关网站的服务条款和法律法规。以下内容仅供学习和了解技术原理之用&#xff0c;不鼓励或支持任何违反规定的行为。 Python 12306抢票脚本通常涉及以下几个步骤&#xff1a; 登录&#xff1a;使用Python的requests库模拟登录123…

Louvain算法简介

1. 背景 Louvain算法是一种基于图数据的社区发现算法(community detection)&#xff0c;算法的优化目标为最大化整个数据的模块度&#xff0c;模块度的计算如下&#xff1a; 其中m为图中边的总数量&#xff0c; 表示所有指向节点 i 的连边权重之和。 表示节点 i&#xff0c;j 之…

每日一练 | 华为认证真题练习Day216

1、如果路由器system视图下和BGP视图下都配置了router-id&#xff0c;由于BGP视图优先级高&#xff0c;则BGP使用BGP视图下的router-id A. 对 B. 错 2、关于NSSA的命令描述&#xff0c;错误的是&#xff1a; A. default-route-advertise命令用来将缺省路由通告到普通OSPF区域…

14_SpringMVC

文章目录 MVCSpringMVC与JavaEE对比SpringMVCSpringMVC的核心流程SpringMVC入门案例RequestMapping注解的使用Handler方法的返回值Handler方法的形参keyvalue形式的请求参数Json请求参数 RESTful风格接口静态资源处理FilterHandlerInterceptor异常处理SpringMVC核心流程流程图 …

ElasticSearch倒排索引原理是什么?如何实现?

1、ElasticSearch倒排索引原理是什么&#xff1f; ElasticSearch的倒排索引原理是一种高效的信息检索技术&#xff0c;它允许用户快速搜索文档中的关键字。以下是其原理的详细解释&#xff1a; 1、文档分析&#xff1a;在索引文档之前&#xff0c;ElasticSearch会对文档进行分…

sudo apt install ros-humble-gazebo-*显示网络不可达 Ubuntu20.04使用清华镜像本地安装/更新ros2

问题 sudo apt install ros-humble-gazebo-*显示网络不可达&#xff0c;这是因为sources.list中的镜像源有问题&#xff0c;换成清华源可以解决问题 解决 1 设置Ubuntu镜像源为清华镜像源 1.1 备份source.list文件 sudo cp /etc/apt/sources.list /etc/apt/sources.list.ba…

线圈、寄存器、存储区代号、功能码 案例说明

线圈和寄存器 表示数据类型 线圈&#xff1a;表示Boolean数据类型 寄存器&#xff1a;表示非Boolean数据类型&#xff0c;用来暂时存放参与运算的数据和运算结果&#xff0c;具有接收数据、存放数据和输出数据的功能。 ModbusRTU 读输出线圈 存储区代号 0区 功能码 0x01 读输入…

金牌客服的宝藏App——客服宝快捷回复软件

在客户服务领域&#xff0c;时间就是金钱&#xff0c;效率就是生命。作为一名荣获“金牌客服”称号的小编&#xff0c;我深知快捷回复工具对于提升工作效率和客户满意度的重要性。今天&#xff0c;我要向大家推荐一款在客服界小有名气的神器——客服宝聊天助手。这款快捷回复软…

PCG共轭梯度最小二乘相位解包裹-matlab(可直接运行)

phase_unwrap.m %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % 根据Ghiglia和Romero(1994)提出的方法,基于加权和非加权最小二乘法进行相位解包裹 % 链接:https://doi.org/10.1364/JOSAA.11.000107 % 输…

Java 通过 SFTP 和 FTP 访问时相对路径引发的问题汇总

背景 常用的 Java SSH 操作工具包是 jsch &#xff0c;FTP 工具包 commons-net &#xff0c;本文介绍本文总结 Java 程序通过 SFTP 协议和 FTP 协议访问远程文件的过程中&#xff0c;需要注意的路径问题。 本文将解答下面三个问题&#xff1a; FTPClient 获取当前用户根目录…

2024.4.17

poll客户端 #include <myhead.h> #define IP "192.168.38.128" #define PORT 8889 int main(int argc, const char *argv[]) {//创建套接字int cfd socket(AF_INET,SOCK_STREAM,0);if(cfd -1){perror("cfd");return -1;}//绑定//......//连接服务…

python:数据容器

三、列表的循环&#xff1a; 语法&#xff1a; # 数据容器存储多个元素&#xff0c;将容器内的数据依次取出进行处理&#xff0c;称之为&#xff1a;遍历、迭代 # 遍历列表的元素—通过while循环 # 如何取出列表的元素— 通过列表[下标]的方式取出数据 # 循环条件的控制 1、定…

C++动态内存管理 解剖new/delete详细讲解(operator new,operator delete)

讨厌抄我作业和不让我抄作业的人 讨厌插队和不让我插队的人 讨厌用我东西和不让我用东西的人 讨厌借我钱和不借给我钱的人 讨厌开车加塞和不让我加塞的人 讨厌内卷和打扰我内卷的人 一、C中动态内存管理 1.new和delete操作内置类型 2.new和delete操作自定义类型 二、operat…