引导过程与服务控制

一、开机启动的完整过程

bios加电自检测-------mbr------grub----------加载内核文件------------启动第一个进程

简述:加电后bios程序会自检硬件,硬件无故障,会根据第一启动项去找内核,一般来说,第一启动项是硬盘,找到硬盘后,会根据mbr的指引找到完整的grub程序,再根据grub的配置文件找到内核文件的具体位置,然后将内核文件加载到内存中运行,内存加载好后,会启动第一个程序。

bios作用:检测硬件是否正常,然后根据biso中的启动项设置,去找内核文件

boot:开机启动顺序(你可以把内核文件放在何处?)

1.硬盘

2.移动设备(u盘移动硬盘,光驱)

3.网络启动

mbr(二进制):因为grub程序太大,第一个扇区存不下所有的grub程序,所以分为两部分,指引硬件找到内核文件

grub:根据grub配置文件(grub.cfg)中记录的位置,去找到内核文件(高级语言)

加载内核:把内核运行在内存中

启动进程:启动第一个祖宗进程

centos6:init

centos7:启动systemd

1.1区别

init:串行启动后续的程序,一个一个按顺序启动

systemd:并行启动程序,全部一起启动

1.2systemd

systemd:是系统级的程序,代为管理系统上的程序

systemd:保姆级

yum以及rpm安装的软件可以直接使用systemctl去启动关闭,重启,开机自启等功能;   编译安装,不可以直接使用systemctl命令去管理程序,需要手写一个配置文件

systemd   **unit(单元)--------描述一个软件的作用和基本信息**,systemd方便管理程序,将程序按照特定的功能分成了很多单元;    

服务单元---写配置

systemctl       get-default------查看默认运行级别

systemctl       set-default------设置默认的级别


rpcbind:启动后,会监听111端口

1.3linux操作系统的运行级别

0:关机

1:单用户,类似于windows的急救模式

2:字符界面,少些功能 (nfs)

3:字符界面

4:字符界面,从来没用过

5:图形界面

6:重启

runlevel:查看当前运行级别

实验1:模拟破坏mbr和分区表,然后修复

1:新建一块硬盘

fdisk分区一下

格式化一下:

mkfs.xfs  /dev/sdb1

挂载到mnt下:

mount /dev/sdb1  /mnt/

2:将备份文件备份到新盘

dd   if=/dev/sda         of=/mnt/mbr       count=1     bs=512

进入mnt下:cd  /mnt

3.模拟破坏:

dd  if=/dev/zero        of=/dev/sda   count=1  bs=512

4.reboot-----重启一下

 

5.然后进入急救模式修复:3  2  1

6.mkdir  bak

7.mount  /dev/sdb1   bak

8.dd  if=bak/mbr.bak   of=/dev/sda   count=1  bs=512

9.reboot---重启服务


实验2:修复grub文件及程序

1.cd   /boot/     cd   grub2/

2.模拟破坏 grub.cfg 配置文件

mv   grub.cfg   /opt

3.重启一下---reboot

4.

5.

6

7

8.

9.先切换根,从光盘的根切换到 自己系统的根

chroot    /mnt/sysimage

10.重新安装grub2程序,在sda磁盘

grub2-install    /dev/sda

11.重新生成配置文件

grub2-mkconfig    -o     /boot/grub2/grub.cfg

12.退到光驱的根下----exit

13.重启----reboot

实验3:破解密码

第一种:有光驱

1.

2.

3.

4.

5.

6.切换根目录

chroot    /mnt/sysimage

7.修改密码

passwd

8.最后,exit退出,reboot--重启一下


2.无光驱情况

1.重启

2.

3.进入了grup程序里,输入命令

rd.break

4.挂载

mount  -o   remount,rw           /sysroot

5.切根,修改密码

chroot       /sysroot

passwd

6.刷新一下,打个标记

touch      /.autorelabel

7.exit退出去;reboot重启

实验4:编译安装nginx-systemctl

1.cd  /data/-----切换到data下

2.编辑文件

vim  test.sh

cd  /opt
wget http://nginx.org/download/nginx-1.18.0.tar.gz
tar xf   nginx-1.18.0.tar.gz
cd  nginx-1.18.0
yum -y install gcc pcre-devel openssl-devel zlib-devel openssl  openssl-devel 
#请使用网络源
mkdir /ky35/nginx -p    
./configure   --prefix=/ky35/nginx
make

make  install

ln -s /ky35/nginx/sbin  
#做软链接   可以补全  

3.

bash  test.sh

4.

vim  /usr/lib/systemd/system/nginx.service

[Unit]
Description=The nginx HTTP and reverse proxy server

[Service]
PIDFile=/ky35/nginx/logs/nginx.pid
ExecStart=/ky35/nginx/sbin/nginx
ExecStop=/usr/bin/kill -s TERM $MAINPID
ExecReload=/ky35/nginx/sbin/nginx -s reload


[Install]
WantedBy=multi-user.target
 

5. 要 告诉  systemd  我加入你了

systemctl  daemon-reload-----nginx

6.开启nginx

systemctl  start  nginx

二、服务程序管理

1.介绍

什么是服务程序?

1.一旦运行一直运行,不会退出

2.一般是后台运行,不会影响前台的操作


管理服务程序

开启

关闭

重启

重新加载配置文件

开机自启

开机不自启

2.chkconfig    centos6

service   服务程序     start

service   服务程序     stop

service   服务程序     restart

service   服务程序     reload

service   服务程序     status

在 /etc/init.d/  写一个同名文件的脚本 (必须要有 执行权限)

chkconfig  --level  35  服务程序    on/off     开机自启和关闭

3.chkconfig      centos7

systemctl     start     服务名

systemctl     stop     服务名

systemctl     status     服务名

systemctl     reload     服务名

systemctl     restart     服务名

开机自启

systemctl       enable     服务名

开机自启,并立即启动

systemctl      enable   --now      服务名

开机不自启

systemctl       disable       服务名

开机自启,并立即关闭

systemctl      disable   --now      服务名


如果用yum 安装 以及 rpm 安装,会自动生成一个配置文件,不需要手动加入

systemd会自动加入


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

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

相关文章

Visual Studio C#创建windows服务程序

选择一个windows服务程序创建 命名一个项目名称双击Service1.cs文件,然后鼠标右键添加安装程序接下来,我们对服务做一些简单的配置,配置Account为LocalSystem,否则启动服务时需要输入账户和密码设置启动服务名称我们可以在OnSt…

【Qt之Quick模块】7. Quick基础、常用组件Item、Rectangle、Text、TextInput、TextEdit等

1. 概述 Qt Quick模块是编写QML应用程序的标准库。Qt QML模块提供QML引擎和语言基础结构,Qt Quick模块提供用QML创建用户界面所需的所有基本类型。它提供了一个可视化画布,包括用于创建和动画化可视化组件、接收用户输入、创建数据模型和视图以及延迟对…

线性代数第一课+第二课总结

第一课 第一课是简单的行列式计算,主要就是要把左下角的数字全部转换为0,通过减去其他行的式子即可实现,最后把对角线的所有数字相乘,得到的结果是最后行列式的答案 第二课 例题1 硬算理论上其实也是可行的,但是使…

达梦数据库查询各表数据量/以及达梦更新统计信息

1、达梦数据库查询各表数据量 达梦数据库与开源的MySQL不一样,MySQL查询各表数据量非常简单 而达梦数据库就有一些地方要注意,先用这句去查↓ SELECT table_name, num_rows FROM all_tables WHERE tablespace_name 表空间名; 如果结果如下图一样&…

STM32——通用定时器脉冲计数实验

1.脉冲计数实验原理 2.从模式配置结构体 typedef struct { uint32_t SlaveMode; /* 从模式选择 / uint32_t InputTrigger; / 输入触发源选择 / uint32_t TriggerPolarity; / 输入触发极性 / uint32_t TriggerPrescaler; / 输入触发预分频 / uint32_t TriggerFilter; / 输入滤波…

华为交换机忘了密码如何恢复?

知识改变命运,技术就是要分享,有问题随时联系,免费答疑,欢迎联系! S系列交换机(S1700除外)BootROM密码缺省情况如下: S盒式交换机在V100R006C03之前的版本BootROM默认密码为huawei,在…

Linux的引导过程与服务控制

一.开机启动的完整过程 引导过程: 1.bios加电自检 检测硬件是否正常,然后根据bios中的启动项设置,去找内核文件 服务器主机开机以后,将根据主板BIOS中的设置对CPU、内存、显卡、键盘灯设备进行初步检测,检测成功后根…

CMake入门教程【基础篇】CMake+Linux gcc构建C++项目

文章目录 1.概述2.GCC与CMake介绍3.安装CMake和GCC4.代码示例 1.概述 在Linux环境下,使用CMake结合GCC(GNU Compiler Collection)进行项目构建是一种常见且高效的方法。CMake作为一个跨平台的构建系统,可以生成适用于不同编译器的…

stable diffusion 基础教程-提示词之光的用法

基图 prompt: masterpiece,best quality,1girl,solo,looking at viewer,brown hair,hair between eyes,bangs,very long hair,red eyes,blush,bare shoulders,(white sundress),full body,leaning forward,medium breasts,unbuttoned clothes,Negative prompt: EasyNegativ…

机器学习与深度学习——使用paddle实现随机梯度下降算法SGD对波士顿房价数据进行线性回归和预测

文章目录 机器学习与深度学习——使用paddle实现随机梯度下降算法SGD对波士顿房价数据进行线性回归和预测一、任务二、流程三、完整代码四、代码解析五、效果截图 机器学习与深度学习——使用paddle实现随机梯度下降算法SGD对波士顿房价数据进行线性回归和预测 随机梯度下降&a…

KBDSMSFI.DLL文件缺失,软件或游戏无法启动,怎样快速修复?试试这些方法

很多用户在日常使用电脑,启动游戏或软件的时候,Windows桌面会弹出错误提示框“KBDSMSFI.DLL文件缺失,软件无法启动或运行,请尝试重新安装解决”。 之所以会出现错误提示,是因为Windows在运行某系软件或游戏的时候&…

nn.Dropout、DropPath的理解与pytorch代码

文章目录 理论dropoutDropPath 代码问题:dropout中为什么要除以 keep_prob? ​在vit的代码中看到了DropPath,想知道DropPath与nn.Dropout()有什么区别,于是查阅相关资料记录一下。 理论 dropout ​dropout是最早的用于解决过拟合的方法&am…