Liunx系统管理的引导过程与服务控制

news2025/2/23 10:09:49
引导过程:

liunx系统的开机过程:

开机自检(BIOS):linux主机开机之后,根据主板BIOS中的设备,对CPU内存 显卡 键盘等等设备进行初步检测

检测成功之后,根据预设的启动柜顺序进行系统控制权的移交

一般情况下,转交给本机的硬盘

或者 U启 或者 光驱

需要再Bios中更改设置,默认的都是从硬盘开始

找到硬盘之后,对硬盘进行初步检测,移交系统的控制权到硬盘

MBR引导:

磁盘分区表,记录了系统当中磁盘分区的索引,找到磁盘的分区位置

硬盘当中的第一个硬盘的第一个扇区,识别系统的版本和操作系统的个数

移动控制权的移交,根据引导信息交给启动菜单,grub2(centos7系统) grub菜单

grub菜单:

grub:统一启动加载器,是一个使用最为广泛的多系统引导器程序

显示出当前有几个系统,可以供用户选择

根据用户的选择,进行系统控制权的移交,移交到选择系统的内核文件,系统的控制权到了内核

centos7都是用的grub2

路径是/boot/grub2/grub.cfg

加载liunx内核:

路径/boot/vmlinuz-版本号.el7(支持红帽或liunx7).x86_64(64位操作系统)

预先编译好的特质二进制可执行文件。介于各种硬件资源和系统程序之间

资源分配与调度。调度完之后,资源和程序加载到内存当中

系统控制权移交,systemd(centos7之后的初始化,init是之前的初始化)

systemd进程初始化:

加载到内存当中程序,已并行的方式加载运行。最终等待用户登录

systemd现在变成centos7的初始化方式的原因。就是因为执行方式是并行打开

init串行。就是一个一个执行,相对并行速度慢

systemd的管理方式:

管理liunx系统的进程和系统服务的管理器

1.支持并行

2.可以设置开机自启,自动重启服务

3.可以在进程运行期间动态的调整进程参数和资源限制

4.可以解决启动进程的依赖关系

对服务的状态进行管理:

start开启

stop关闭

restart重启

status查看进程状态

enable开机自启

disable关闭开机自启

reload重新加载(进程的配置文件)

控制单元:

systemd按照单元进行控制unit

单元的类型:

service 对进程进行控制

socket 通信套接字 端口号服务,对进程间的端口号进行控制

systemctl stop

start

restart

系统的运行级别:

0 关机

1 单用户模式,一般用于维护时使用,急救模式

2 字符串界面

3 字符串界面

4 字符串界面

5 图形化界面

6 重启

工作中只有:字符界面

init后面跟上数字,可以切换系统的运行级别

runlevel查询系统的运行级别

N是之前没有切换过系统的运行级别

5是 当前的运行级别是5 也就是图形化界面

0:init 0 立刻关机 或者 poweroff

6:init 6 立刻重启 或者 reboot

修复MBR扇区故障

位置在MBR第一个硬盘的第一个分区的第一个扇区。

模拟扇区故障与修复实操 PS:备份很重要

第一步创建分区:

新建一个硬盘

到命令行scan刷新硬盘 PS:此命令自行创建的上一章有描述

fdisk /dev/sdb

n 回车 回车 +5G w

mkdir /data

mkfs.xfs /dev/sdb1

mount /dev/sdb1 /data/

上面创建分区上一章有具体描述

dd if=/dev/sda of=/data/mbr.bak bs=512 count=1 #这是对分区进行备份

cd /data/ #查看文件

dd if=/dev/zero of=/dev/sda bs=512 count=1 #这是对分区进行破坏

reboot #重启,在此之前必须将镜像文件配置好且是连接状态

在这选择Troubleshooting

mkdir /backup #创建一个交backup的目录

ls #查看目录是否创建成功

mount /dev/sdb1 /backup/ #将sdb1挂载到backup上

cd backup/ #进入backup

ls #查看是否有之前的备份文件

dd if=/backup/mbr.bak of=/dev/sda #将备份文件给到损坏的分区

exit #退出

模拟引导菜单出现故障,引导菜单被删除了,下面进行修复

进入命令页,因为我们用的是centos7,它用的是grub2所以

cd /boot/

cd grub2/

rm -rf grub.cfg #将grub的配置文件删除

reboot #重启

此页面是重启是快速按esc键,然后选择第三个

然后如上一个模拟故障一样进入急救模式

choroot /mnt/sysimage/ #这是切换到系统的根目录

grub2-install /dev/sda #将grub2引导文件进行重新安装

grub2-mkconfig -o /boot/grub2/grub.cfg #将文件归位

exit #退出

模拟root密码忘记

进入急救模式上面模拟有具体进入方法

choroot /mnt/sysimage/ #这是切换到系统的根目录

passwd root #进入后就可以直接修改密码了

exit #退出

reboot#重启

PS:上面三个模拟故障可以结合着看,有一些地方是重合的
进程和计划任务管理

进程:正在运行的代码就是进程

服务:进程提供的特定功能

程序:是一串没有运行的代码

线程:是进程功能的真正执行者

进程和进程之间的关系:

父进程和子进程:

systemd进程是liunx的第一个进程,也是所有liunx进程的父进程

父进程先启动,在启动子进程

父进程给子进程分配资源,让子进程能够正常运行

子进程先结束,父进程回收完子进程的资源之后,父进程才会结束

父进程如果先结束,子进程就会变成僵尸进程

查看进程:

ps -aux #查看进程的方式,静态的查看

a:显示终端上所有的进程 包括其他用户的进程

u:列出进程的用户

x:显示进程的详细信息

user:进程所属的用户

pid:进程的身份标识,id号,唯一,不重复

%CPU:进程占用cpu的百分比

%MEM:进程占用物理内存的百分比

VSZ:进程使用的虚拟内存量,单位是KB

虚拟内存是系统预设的,是为了便于缓解物理内存不足的压力。例如:内存是8G,虚拟内存正常在2-2.5G

RSS:进程占用物理内存的量,单位是KB

TTY:启动进程的终端名。?是表示系统自启,而不是从终端启动的

STAT:进程的状态

S:可被唤醒的休眠状态

R:进程正在运行

D:一直处于休眠状态的进程

T:停止状态,可能是在后台暂停,或者进程处于调试状态

Z:僵尸进程

s:该进程包含子进程

<:该进程处理的优先级高

N:该进程处理的优先级低

l:表示进程有多个线程

+:表示该进程在前台运行

START:触发启动的时间

TIME:进程实际使用CPU运行的时间

COMMAND:进程启动的命令

ps -elf #查看进程的方式,静态的查看

e:显示系统内的所有进程信息

l:详细展示进程信息

f:完整格式显示进程信息

F:内核分配给进程的系统标记

S:进程的状态

UID:进程所属的用户

PID:进程的ID号,唯一的不重复的

PPID:前面一个pid号对应的父进程号

C:表示进程在当前的生命周期内的CPU利用率

PRI:表示进程的优先级,数字越大,优先级越低

NI:谦让值,决定优先级的大小

ADDR:进程在内存当中的地址

SZ:假如进程被换出,需要交换空间的大致的大小

WCHAN:如果该进程处于睡眠状态,则显示睡眠中的系统函数名

STIME:进程启动时的时间

TTY:启动进程的终端名。?是表示系统自启,而不是从终端启动的

TIME:进程实际使用CPU运行的时间

CMD:进程的启动命令

推荐使用:ps -aux

僵尸进程:父进程先结束,子进程,这时候子进程就会变成一个僵尸进程

如果子进程在结束时,父进程已经不在了,而且父进程也没有子进程的资源,此时也会变为僵尸进程

僵尸进程占用系统的资源很少,单个僵尸进程可以忽略不计,但是太多就会有影响

僵尸进程唯一的解决办法就是重启

面试题:

僵尸进程该怎么处理:

回答:只有重启,僵尸进程没有办法通过kill强制结束

模拟僵尸进程

cd /opt/ #进入opt目录

vim wait.c #进入僵尸进程的脚本

#include <stdio.h> #include <unistd.h> #include <sys/wait.h>

int main(int argc, char **argv) { pid_t pid;

pid = fork();
if (pid == 0) {  // child
    printf("child pid = %d\n", getpid());
    printf("in child...\r\n");
    sleep(2);
} else if (pid > 0) {  // father
    sleep(10); /* 子进程 2s 钟后提前结束,等待父进程回收其资源,在这期间,子进程处于僵尸状态 */
    wait(NULL);
}
​
return 0;

}

上面一段是在文件中复制粘贴,这是一个C语言编写的僵尸进程

:wq! #保存退出

yum -y install gcc #因为liunx本身没有C语言环境,所以用yum下载

gcc wait.c -o wait.out #输出这个文件 ./wait.out #查看进程号

在新建的一个页面上对这个进程查看

ps -aux | grep 11196 #此数字是上面查看到的进程号

因为速度有点快可以多操作两遍。就可以变成僵尸进程了

kill:终止进程

kill只是传递信息

kill -9 代表的发送强制结束,立即结束的信号

最终是进程来终止运行的

top:动态查看进程信息

第一行:是任务队列信息

top - 17:03:49 #系统时间

up 1:36 #此系统已经运行时间

1 user #登录的用户上图的上方可以看到我们只开了一个窗口其实也就是一个用户登录

load average: 0.00, 0.01, 0.05 #这是系统负载,单位时间内系统处理的任务数的平均值

1分钟,五分钟,15分钟

第二行:是进程信息

Tasks:179 total #当前系统的总进程数

1 running #运行的进程数量

178 sleeping #睡眠的进程数量

0 stopped #停止的进程数量

0 zombie #僵尸的进程数量

第三行:是CPU信息

按下数字键1:显示所有CPU的信息

us:用户占用的百分比 #很重要

sy:内核占用的百分比

ni:优先级调度占用的百分比

id:空闲值,CPU的空闲百分比 #很重要

wa:磁盘读写性能

hi:1分钟内cpu的使用率

si:5分钟内cpu的使用率

st:15分钟内CPU的使用率

第四行:内存信息

第五行:交换分区的信息

PID:用户的进程号

USER:进程所属的用户

PR:数字越大优先级越低

NI:优先级的谦让值

VIRT:进制占用的虚拟内存

RES:进制占用的物理内存

SHR:共享内存

S:进程状态

%CPU:进程占用CPU的百分比

%MEM:进程占用的内存百分比

TIME+:进程总计占用cpu时间的统计 PS:单位是1除100秒

COMMAND:系统启动的命令

按下c键:按照CPU的大小进行排序。从大到小排序

按下q键:退出到命令行

后台运行,查看后台运行的进程

后台运行 在结尾处添加 & 是后台运行

jobs查看后台运行的进程

-r仅显示正在运行的后台程序

-p显示所有后台进程id号

定时任务:

crontab -e -u

-e:创建定时任务

-u:指定定时任务的用户

crontab -l:查看所有的定时任务

*: *: *: *: *: #这边的:忽略,因为软件问题单独星号打不出

分 时 日 月 周

0-59 0-23 1-31 1-12 0-7 周:0和7都表示星期天

*:表示任意的时间范围

1分钟,3分钟,5分钟:表示间隔的多个不连续的时间点

1-3:表示连续的时间范围

*/10:表示间隔频率,每10分钟执行一次

每天早上的八点三十分,执行cd /opt

30 8 * * * cd /opt

每月的1号上午十点10分 20分 30分 分别执行一次 cd /opt

10,20,30 10 1 * * cd /opt

每月的1号,上午10点20分到40分,都执行 cd /opt

crontab -r:是删除全部的定时任务PS这天命令不推荐

这是删除唯一的办法crontab -e:进入里面一个一个删除

命令:

systemctl start firewalld.service #开启服务

systemctl status firewalld #查看进程

systemctl stop firewalld #关闭服务

systemctl restart firewalld #重启服务

等等类似方法

打不开服务怎么办:

tail -f /var/log/messages #从后往前动态查看日志

iostat:专门的查看磁盘的读写性能

http://t.csdnimg.cn/1Rfum

这有些知识点可以结合这个链接一起看,但是主要还是看这篇就好

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

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

相关文章

阿里云云安全中心详细介绍(原态势感知)功能价格说明

阿里云云安全中心&#xff08;原态势感知&#xff09;是一个实时识别、分析、预警安全威胁的服务器主机安全管理系统&#xff0c;云安全中心功能支持漏洞扫描与修复、基线检查、防勒索、防病毒、防篡改、威胁检测模型等功能&#xff0c;云安全中心基础版免费、防病毒班432元一年…

网络安全—小白学习笔记

1.网络安全是什么 网络安全可以基于攻击和防御视角来分类&#xff0c;我们经常听到的 “红队”、“渗透测试” 等就是研究攻击技术&#xff0c;而“蓝队”、“安全运营”、“安全运维”则研究防御技术。 2.网络安全市场 一、是市场需求量高&#xff1b; 二、则是发展相对成熟入…

水库大坝安全监测是什么和主要作用?

水库大坝安全监测是指通过仪器观测和巡视检查对水利水电工程主体结构、地基基础、两岸边坡、相关设施以及周围环境所作的测量及观察。大坝安全监测是作为水库大坝安全管理的重要组成部分&#xff0c;是掌握水库大坝安全性态的重要手段&#xff0c;是科学调度、安全运行的前提。…

Java进阶 之 再论面向对象(3)——构造方法Constructors 以及 调用的分析 JavaBean的概念 构造函数中this关键字

前言 在前面博客中&#xff0c;我们从面向过程和面向对象的编程思想谈起&#xff0c;阐述了类和对象在Java中的编程中的应用&#xff0c;此外&#xff0c;对于对象的内存&#xff0c;变量作用域&#xff0c;参数传递等进行了阐述。 Java进阶 之 再论面向对象&#xff08;1&am…

配电房监测系统:智能化电力管理的关键

随着社会的发展和科技的进步&#xff0c;电力设施的重要性日益凸显。其中&#xff0c;配电房作为电能分配的核心设施&#xff0c;其运行状态直接影响到电力系统的稳定性和可靠性。为了确保配电房的高效运行&#xff0c;采用配电房监测系统成为关键。此类系统利用先进的智能电力…

企业数字化转型的必选项:集成自动化

NO.1 将“不可能”变成“可能”的自动化工作流 在智能化时代&#xff0c;我们经常会听到“工作流”这个词&#xff0c;但很多人并不清晰它真正的含义&#xff0c;简单来说&#xff0c;它是一个与其他场景流程集成的应用程序&#xff0c;目标是自动化各应用之间的流程&#xf…

【ivX】低调且强大的低代码平台

目录 前言 一、低代码那么多 为什么选择iVX&#xff1f; 二、“拼”出来的低代码平台&#xff0c;真的好用吗&#xff1f; 前言 首先我们应该明白自动编程突破可能是&#xff1a;领域内Mini LLM 现在的思路都是搞LLM&#xff0c;几乎像“大跃进”一样全民都在修炼“大模型”…

来自小魔推的八大优势应用场景,这些你都了解吗?

进入2023年&#xff0c;大多数在做短视频宣传的实体商家都在考虑新的推广方式&#xff0c;而近期商家宣传工具已经逐渐被小魔推所种草&#xff0c;今天就把小魔推的应用场景与八大优势&#xff0c;统一给大家讲清楚&#xff01; 1&#xff1a;员工专属推广码&#xff0c;商家可…

基于RuoYi-Flowable-Plus的若依ruoyi-nbcio支持自定义业务表单流程(一)

原先不支持自定义业务表单的流程流转&#xff0c;因为这样对很多用户就更加方便&#xff0c;流程还是用现有的流程&#xff0c;但表单可以自己单独设计&#xff0c;满足各种不同的业务需求。 1、增加一个接口传入当前设计的流程应用类型 /*** 获取流程分类详细信息* param cod…

CustomTabBar 自定义选项卡视图

1. 用到的技术点 1) Generics 泛型 2) ViewBuilder 视图构造器 3) PreferenceKey 偏好设置 4) MatchedGeometryEffect 几何效果 2. 创建枚举选项卡项散列&#xff0c;TabBarItem.swift import Foundation import SwiftUI//struct TabBarItem: Hashable{ // let ico…

CV2对图像做渐变模糊

一段小代码&#xff0c;供参考&#xff0c;在CV2中做一些边缘渐变的功能。 主要流程&#xff1a; 生成一个随机的mask&#xff0c;并归一化&#xff0c;使其作为另一张图片的权重。对mask做高斯模糊&#xff0c;实现边缘渐变。将加权mask与原始图片相乘。 import os import cv…

HelloKitty 代码 Python

话不多说直接上代码,绘制速度慢,录屏之后调倍速 import math import turtle as t# 计算长度、角度 t1:画笔对象 r:半径 angle:扇形(圆形)的角度 def myarc(t1, r, angle):arc_length = 2 * math.pi * r * angle

树莓派安装.NET 6.0

首先安装.Net Core依赖&#xff08;未使用&#xff09; sudo apt install -y libunwind8 libunwind8-dev gettext libicu-dev liblttng-ust-dev libcurl4 libcurl4-openssl-dev libssl-dev uuid-dev unzip libgdiplus libc6-dev libkrb5-3 需要安装的依赖微软官方文档已经列出…

想要精准获客? 必看企业软文的写作技巧

信息碎片化时代下&#xff0c;企业获客的常用方式就是软文营销&#xff0c;因为软文相比于一般的营销方式成本更低&#xff0c;效果持续时间长&#xff0c;但是有许多企业在写软文时没有掌握好方法&#xff0c;认为文章只要发了就行&#xff0c;导致宣传效果不明显&#xff0c;…

字符串的左旋和判断一个字符串是否为另外一个字符串旋转之后的字符串。(C语言实现)

目录 1. 字符串的左旋 2. 判断一个字符串是否为另外一个字符串旋转之后的字符串 1. 字符串的左旋 题目&#xff1a; 实现一个函数&#xff0c;可以左旋字符串中的k个字符。 例如&#xff1a; ABCD左旋一个字符得到BCDA ABCD左旋两个字符得到CDAB 解析&#xff1a;该题有…

怎么把电影中的声音保存下来?

怎么把电影中的声音保存下来&#xff1f;当我们欣赏电影时&#xff0c;常常会遇到喜欢的片段、精彩的台词或优美的音乐。这时候&#xff0c;我们可能会有一个念头&#xff0c;希望能够将电影中的声音留存下来&#xff0c;以供将其作为手机铃声或背景音乐使用。 要实现这个目标&…

盘点:数字人直播系统源码部署哪家好?

数字人直播克隆系统是一种利用人工智能技术&#xff0c;将真实人物的形象、声音、表情、动作等特征转化为数字化的虚拟人物&#xff0c;通过网络进行实时互动的新型媒体形式。数字人直播克隆系统源码部署是指将数字人直播系统的核心代码和模型安装在自己的服务器上&#xff0c;…

【OAuth】OAuth2.0四种授权模式

什么是OAuth&#xff1f; 开放授权&#xff08;OAuth&#xff09;是一个开放标准&#xff0c;允许用户让第三方应用访问该用户在某一网站上存储私密的资源&#xff08;如照片&#xff0c;视频&#xff0c;联系人列表&#xff09;&#xff0c;而无需将用户名和密码提供给第三方…

和为 K 的子数组

题目链接 和为 K 的子数组 题目描述 注意点 -1000 < nums[i] < 1000子数组是数组中元素的连续非空序列 解答思路 最初想到的思路是使用递归&#xff0c;遍历整个数组&#xff0c;当访问到idx位置处的元素时&#xff0c;可以根据idx - 1作为末尾元素的子数组和推出id…

SAP router的问题 dev_out 大文件 ,bat 关闭服务,删除文件,重启服务

跟老师确认后&#xff0c;dev_out可以删除 具体时先把sap-router停掉&#xff0c;删除dev_out 重启服务 问题&#xff1a; 1、问题是saprouter 不能停止&#xff0c;停止的话 外网都要用VPN&#xff0c;那就避开高峰时间 可以后半夜搞这个事情 2、如何定时执行 &#xff…