用户
搜索

该用户从未签到

i春秋-脚本小子

Rank: 2

8

主题

8

帖子

165

魔法币
收听
0
粉丝
2
注册时间
2020-9-9
发表于 2021-9-7 19:51:29 13399
本篇文章作者邪色蝴蝶,本篇文章参与i春秋作家连载计划所属邪色蝴蝶个人,未经许可,禁止转载。

0X00:
各位表哥们,大家好,这是我连载的第篇文章,
本篇是写Linux—控制服务和守护进程。

0X01:自动启动的系统进程
Systemd介绍:
Systemd守护进程管理Linux的启动,一般包括服务启动和服务管理。它可以在系统引导时以运行中的系统上激活系统资源、服务器守护和其他进程。
守护进程是在执行各种任务的后台等待或运行的进程。一般来说呢,许多守护的名称都是以字母d来结尾,一般情况下,守护进程在系统引导时自动启动并持续运行到关机或被手动停止为止。
Systemd意义上的服务通常指的是一个或多个守护进程,但启动或停止一项进程可能会对系统的状态进行一次更改,不会留下守护进程之后继续运行。
Linux中,第一个启动的进程叫做systemd,以下是systemd提供的几项功能:
1. 并行化功能(同时可以启动多个服务),它可以提高系统的启动速度。
2. 按需启动守护进程,而不需要单独的服务。
3. 自动服务依赖关系管理,可以防止长时间超时。
4. 利用Linux控制组一起追踪相关进程的方式。
0X02:服务单元:
Systemd使用单元来管理不同类型的对象,systemctl命令用于管理单元。下面是几种常用的单元类型:
1. 服务单元具有.service拓展名,代表系统服务,这种单元用于启动经常访问的守护进程。(如web服务)
2. 套接字单元具有.socket拓展名,代表systemd应监控的进程间通信套接字,systemd将启动一个守护进程并将连接传递给它,套接字单元用于延迟启动时的服务启动,或者按需启动不常使用的服务。
3. 路径单元具有.path拓展名,用于将服务的激活推迟到特定文件系统更改发生之后,这通常用于使用假脱机目录的服务。(如打印服务)
我们可以通过systemctl命令来知道系统的当前状态。(如下图所示)
QQ截图20210903203024.png

在以上输出中,通过--type=service选项将列出的单元类型限制为服务单元。输出包含以下几列:
Systemctl  list-units命令输出中的列
UNIT:服务单元名称
LOADsystemd是否正确解析了单元的配置并将单元加载到内存中
ACTIVE:单元的高级别激活状态,表示单元是否已成功启动。
SUB:单元的低级别激活状态,此信息指示有关单元的更多详细信息。信息视单元类型、状态以及单元的执行方式而异。
DESCRIPITON:单元的简短描述
默认情况下,systemctl  list-units  --type=service命令只会列出激活状态为active的服务单元,而 --all选项课列出所有服务单位,不论激活状态如何(如以下所示)。
QQ截图20210903204241.png


服务状态:
使用systemctl status name.type来查看特定单元的状态。如果未提供单元类型,则systemctl将显示服务单元的状态。(以下是服务单元信息中各个字段的含义)
QQ截图20210903204813.png

状态输出中服务状态几个关键字的含义:
QQ截图20210903204924.png

0X03:控制系统服务
Linux中,需要我们手动停止或启动服务的原因有很多:比如可能需要更新服务:可能需要更改配置文件:可能需要卸载服务:或者,我们可能会手动启动不经常使用的服务。
要启动服务,首先需要systemctl status验证它是否未在运行。然后,以root用户身份使用systemctl status命令。如果命令中的服务名称缺少服务类型,systemd服务会查找用于服务管理的.service文件。(如下图所示)


QQ截图20210906105722.png

如果要停止正在运行的服务,则我们可以使用stop参数来运行systemctl命令。(如下图所示)

QQ截图20210906105911.png

在重新启动正在运行的服务期间,服务将停止运行然后重新启动,在重新启动服务时,进程ID会改变,并且在启动期间会关联新的进程ID。要重新启动正在运行的服务,我们可以使用restart参数来运行systemctl命令。(如下图所示)

QQ截图20210906110359.png

某些服务可以重新加载其配置文件而不需要重新启动,这个过程被称为服务重新加载。重新加载服务不会更改与各种服务进程关联的进程ID。要重新加载正在运行的服务,我们可以使用reload参数来运行systemctl命令。(如下图所示)

QQ截图20210906110649.png

如果我们不确定服务是否具有重新加载配置文件更改的功能,我们可以使用reload-or-restart参数来运行systemctl命令。如果重新加载功能可用,该命令将重新加载配置更改,反之,该命令将重新启动服务以实施新的配置更改。
QQ截图20210906110956.png


某些服务要求首先运行其他服务,从而创建对其他服务的依赖项。其他服务并不在系统引导时启动,而是仅仅在需要时启动。在这两种情况下,systemdsystemctl根据需要启动服务,不论是解决依赖项,还是启动不经常使用的服务。例如,如果CUPS打印服务未在运行,并有文件被放入打印假脱机目录,则系统将启动CUPS相关的守护进程或命令来满足打印服务。
Systemctl命令摘要:
服务管理使用命令
QQ截图20210906111926.png
QQ截图20210906111935.png







发表于 2021-9-9 00:05:39
感谢分享
剑未佩妥出门已是江湖
使用道具 举报 回复
发新帖
您需要登录后才可以回帖 登录 | 立即注册