centos7的启动流程(systemctl)

本文详细介绍了在CentOS7系统中使用systemctl管理服务(如httpd、sshd等)、chkconfig命令的对应关系、服务状态检查、运行级别设置,以及如何操作MySQL服务和处理应急模式。内容包括启动、停止、重启服务的方法,以及unit文件的结构和配置选项。
摘要由CSDN通过智能技术生成

在这里插入图片描述

systemctl mask httpd 禁止手动操作这个服务

在这里插入图片描述

2. 查看服务


查看某服务当前激活与否的状态

systemctl is-active name.service

查看所有已经激活的服务

systemctl list-units -t service (-t等价于–type)

查看所有服务

systemctl list-units --type service -a (-a等价于–all)

chkconfig命令的对应关系:

设置开机自启

chkconfig name on ==> systemctl enable name.service

设置开机禁止启动

chkconfig name off ==> systemctl disable name.service

查看所有服务的开机自启状态:

chkconfig --list ==> systemctl list-unit-files --type service

用来列出该服务在哪些运行级别下启用和禁用

chkconfig sshd –list ==> ls /etc/systemd/system/*.wants/sshd.service

查看服务是否开机自启

systemctl is-enabled name.service

查看服务的依赖关系

systemctl list-dependencies name.service

杀掉进程

systemctl kill unitname

3.服务状态


systemctl list-unit-files --type service --all显示状态

loaded Unit配置文件已处理

active(running) 一次或多次持续处理的运行

active(exited) 成功完成一次性的配置

active(waiting) 运行中,等待一个事件

inactive 不运行

enabled 开机启动

disabled 开机不启动

static 开机不启动,但可被另一个启用的服务激活

4.例子


显示所有单元状态

systemctl 或 systemctl list-units

只显示服务单元的状态

systemctl --type=service

显示sshd服务单元

systemctl –l status sshd.service

验证sshd服务当前是否活动

systemctl is-active sshd

启动,停止和重启sshd服务

systemctl start sshd.service

systemctl stop sshd.service

systemctl restart sshd.service

重新加载配置

systemctl reload sshd.service

列出活动状态的所有服务单元

systemctl list-units --type=service

列出所有服务单元

systemctl list-units --type=service --all

查看服务单元的启用和禁用状态

systemctl list-unit-files --type=service

列出失败的服务

systemctl --failed --type=service

列出依赖的单元

systemctl list-dependencies sshd

验证sshd服务是否开机启动

systemctl is-enabled sshd

禁用network,使之不能自动启动,但手动可以

systemctl disable network

启用network

systemctl enable network

禁用network,使之不能手动或自动启动

systemctl mask network

启用network

systemctl unmask network

三. service unit文件格式

======================================================================================

/etc/systemd/system系统管理员和用户使用

/usr/lib/systemd/system:发行版打包者使用(一般是参考官方文档写的)

以 “#” 开头的行后面的内容会被认为是注释

相关布尔值,

1、yes、on、true 都是开启

0、no、off、false 都是关闭

时间单位默认是秒,所以要用毫秒(ms)分钟(m)等须显式说明

service unit file文件通常由三部分组成:

[Unit]:定义与Unit类型无关的通用选项;用于提供unit的描述信息、unit行

为及依赖关系等

[Service]:与特定类型相关的专用选项;此处为Service类型

[Install]:定义由“systemctl enable”以及"systemctl disable“命令在实现服务启用或禁用时用到的一些选项

1. Unit段的常用选项:

Description:描述信息

After:定义unit的启动次序,表示当前unit应该晚于哪些unit启动,其功能与Before相反

Requires:依赖到的其它units,强依赖,被依赖的units无法激活时,当前unit也无法激活

Wants:依赖到的其它units,弱依赖

Conflicts:定义units间的冲突关系

例如:firewalld 和iptables服务(冲突关系)

2. Service段的常用选项:

Type:定义影响ExecStart及相关参数的功能的unit进程启动类型

• simple:默认值,这个daemon主要由ExecStart接的指令串来启动,启动后常

驻于内存中

• forking:由ExecStart启动的程序透过spawns延伸出其他子程序来作为此

daemon的主要服务。原生父程序在启动结束后就会终止

• oneshot:与simple类似,不过这个程序在工作完毕后就结束了,不会常驻在内存中

• dbus:与simple类似,但这个daemon必须要在取得一个D-Bus的名称后,才

会继续运作.因此通常也要同时设定BusNname= 才行

• notify:在启动完成后会发送一个通知消息。还需要配合 NotifyAccess 来让

Systemd 接收消息

• idle:与simple类似,要执行这个daemon必须要所有的工作都顺利执行完毕后才会执行。这类的daemon通常是开机到最后才执行即可的服务

EnvironmentFile:环境配置文件

ExecStart:指明启动unit要运行命令或脚本的绝对路径

ExecStartPre: ExecStart前运行

ExecStartPost: ExecStart后运行

ExecStop:指明停止unit要运行的命令或脚本

Restart:当设定Restart=1 时,则当次daemon服务意外终止后,会再次自动启动此服务

3. Install段的常用选项:

• Alias:别名,可使用systemctl command Alias.service

• RequiredBy:被哪些units所依赖,强依赖

• WantedBy:被哪些units所依赖,弱依赖

• Also:安装本服务的时候还要安装别的相关服务

注意:对于新创建的unit文件,或者修改了的unit文件,要通知systemd重载此

配置文件,而后可以选择重启systemctl daemon-reload

示例写一个备份服务(用于打包)

写成脚本:用于将/etc/下面的文件打包备份

touch /data/bak.tar

tar cf /data/etc.tar /etc/ &>/dev/null

加执行权限chmod +x /data/bak.sh

然后写服务

vim /etc/systemd/system/bak.service

[Unit]

Description=backup /etc

Requires=atd.service 强依赖

[Service]

Type=simple

ExecStart=/bin/bash -c “echo /data/bak.sh|at now” #后面的at now 计划任务(现在执行一次)

[Install]

WantedBy=multi-user.target

查看自己写的服务文件systemctl list-units -t |grep bak.service

发现没有

在这里插入图片描述

启用服务

systemctl daemon-reload 重新加载

systemctl start bak 启用该服务

四. 运行级别

==========================================================================

target units:

unit配置文件:.target

ls /usr/lib/systemd/system/*.target

systemctl list-unit-files --type target --all

运行级别:

0 ==> runlevel0.target, poweroff.target

1 ==> runlevel1.target, rescue.target

2 ==> runlevel2.target, multi-user.target

3 ==> runlevel3.target, multi-user.target

4 ==> runlevel4.target, multi-user.target

5 ==> runlevel5.target, graphical.target

6 ==> runlevel6.target, reboot.target

在这里插入图片描述

查看依赖性:

systemctl list-dependencies graphical.target

级别切换

init N ==> systemctl isolate name.target

例如:

systemctl isolate multi-user.target

注:只有/lib/systemd/system/*.target文件中AllowIsolate=yes 才能切换

(修改文件需执行systemctl daemon-reload才能生效)

查看target

runlevel ;who -r

systemctl list-units --type target

获取默认运行级别

/etc/inittab ==> systemctl get-default

修改默认级别/etc/inittab ==> systemctl set-default name.target

systemctl set-default multi-user.target

ls –l /etc/systemd/system/default.target

切换至紧急救援模式:

systemctl rescue

切换至emergency模式:

systemctl emergency

其它常用命令:

传统命令init,poweroff,halt,reboot都成为

systemctl的软链接

关机:systemctl halt、systemctl poweroff

重启:systemctl reboot

挂起:systemctl suspend

休眠:systemctl hibernate

休眠并挂起:systemctl hybrid-sleep

1.CentOS 7 引导顺序


1.UEFi或BIOS初始化,运行POST开机自检

2.选择启动设备

3.引导装载程序, centos7是grub2

4.加载装载程序的配置文件:

/etc/grub.d/

/etc/default/grub 模板文件

/boot/grub2/grub.cfg

/etc/default/grub更改网卡名字(变成传统的eth模式)

在这里插入图片描述

在**/boot/grub2/grub.cfg**不能更改

配合grub2-makconfig 命令(在屏幕上打印)

要怎样写:grub2-mkconfig -o /boot/grub2/grub.cfg

-o覆盖老的grub.cfg文件

在这里插入图片描述

也就是说grub.cfg文件**被删了

也可以,重新生成

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

5.加载initramfs驱动模块

6.加载内核选项

7.内核初始化,centos7使用systemd代替init

8.执行initrd.target所有单元,包括挂载/etc/fstab

9.从initramfs根文件系统切换到磁盘根目录

10…systemd执行默认target配置,配置文件/etc/systemd/system/default.target------------>相当于centos6的/etc/inittab中的第一项

在这里插入图片描述

11.systemd执行sysinit.target初始化系统及basic.target(强依赖)准备操作系统

12.systemd启动multi-user.target下的本机与服务器服务

13.systemd执行multi-user.targe的/etc/rc.d/rc.local

14.Systemd执行multi-user.target下的getty.target及登录服务

15.systemd执行graphical需要的服务

设置内核参数

设置内核参数,只影响当次启动

启动时,在linux16行后添加systemd.unit=desired.target

systemd.unit=emergency.target

systemd.unit=rescue.target

rescue.target 比emergency 支持更多的功能,例如日志等

systemctl default 进入默认target

2.启动排错


文件系统损坏

先尝试自动修复,失败则进入emergency shell,提示用户修复

在/etc/fstab不存在对应的设备和UUID

等一段时间,如不可用,进入emergency shell

在/etc/fstab不存在对应挂载点

systemd 尝试创建挂载点,否则提示进入emergency shell.

在/etc/fstab不正确的挂载选项

提示进入emergency shell

3.破解CentOS7的root口令方法一


启动时任意键暂停启动

按e键进入编辑模式

将光标移动linux16开始的行,添加内核参数rd.break

按ctrl-x启动

因为/ 状态只读

真正的根为/sysroot

mount –o remount,rw /sysroot 让根可以写

chroot /sysroot

passwd root 按两次回车 也可以将/sysroot/etc/showd文件的密码清空

touch /.autorelabel 前提是selinux启用(才执行)

exit 退出切根

reboot

4.破解CentOS7的root口令方法二


启动时任意键暂停启动

按e键进入编辑模式

将光标移动linux16开始的行,改为rw init=/sysroot/bin/sh

按ctrl-x启动

chroot /sysroot

passwd root

touch /.autorelabel 前提是selinux启用(才执行)

自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数Java工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年Java开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Java开发知识点,真正体系化!

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!

如果你觉得这些内容对你有帮助,可以扫码获取!!(备注Java获取)

img

《MySql面试专题》

全网火爆MySql 开源笔记,图文并茂易上手,阿里P8都说好

全网火爆MySql 开源笔记,图文并茂易上手,阿里P8都说好

《MySql性能优化的21个最佳实践》

全网火爆MySql 开源笔记,图文并茂易上手,阿里P8都说好

全网火爆MySql 开源笔记,图文并茂易上手,阿里P8都说好

全网火爆MySql 开源笔记,图文并茂易上手,阿里P8都说好

全网火爆MySql 开源笔记,图文并茂易上手,阿里P8都说好

《MySQL高级知识笔记》

全网火爆MySql 开源笔记,图文并茂易上手,阿里P8都说好

全网火爆MySql 开源笔记,图文并茂易上手,阿里P8都说好

全网火爆MySql 开源笔记,图文并茂易上手,阿里P8都说好

全网火爆MySql 开源笔记,图文并茂易上手,阿里P8都说好

全网火爆MySql 开源笔记,图文并茂易上手,阿里P8都说好

全网火爆MySql 开源笔记,图文并茂易上手,阿里P8都说好

全网火爆MySql 开源笔记,图文并茂易上手,阿里P8都说好

全网火爆MySql 开源笔记,图文并茂易上手,阿里P8都说好

全网火爆MySql 开源笔记,图文并茂易上手,阿里P8都说好

全网火爆MySql 开源笔记,图文并茂易上手,阿里P8都说好

文中展示的资料包括:**《MySql思维导图》《MySql核心笔记》《MySql调优笔记》《MySql面试专题》《MySql性能优化的21个最佳实践》《MySq高级知识笔记》**如下图

全网火爆MySql 开源笔记,图文并茂易上手,阿里P8都说好

关注我,点赞本文给更多有需要的人
《互联网大厂面试真题解析、进阶开发核心学习笔记、全套讲解视频、实战项目源码讲义》点击传送门即可获取!

[外链图片转存中…(img-UrJaLdtu-1713311829223)]

《MySQL高级知识笔记》

[外链图片转存中…(img-yXLXirbI-1713311829223)]

[外链图片转存中…(img-3ToCOgXr-1713311829224)]

[外链图片转存中…(img-cwKZXWs8-1713311829224)]

[外链图片转存中…(img-AqkcEDSA-1713311829224)]

[外链图片转存中…(img-AHFkyqkb-1713311829224)]

[外链图片转存中…(img-B9CTZwAD-1713311829224)]

[外链图片转存中…(img-mDhSB5MR-1713311829225)]

[外链图片转存中…(img-0irElPsi-1713311829225)]

[外链图片转存中…(img-N7ORzSU3-1713311829225)]

[外链图片转存中…(img-y0DM8i7g-1713311829225)]

文中展示的资料包括:**《MySql思维导图》《MySql核心笔记》《MySql调优笔记》《MySql面试专题》《MySql性能优化的21个最佳实践》《MySq高级知识笔记》**如下图

[外链图片转存中…(img-cKOlKDxH-1713311829225)]

关注我,点赞本文给更多有需要的人
《互联网大厂面试真题解析、进阶开发核心学习笔记、全套讲解视频、实战项目源码讲义》点击传送门即可获取!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值