使用系统ctl管理系统服务[带示例]

所有主要的Linux发行版,如Ubuntu、Fedora等,现在都使用system init系统来管理和控制系统运行时的各种服务。在本指南中,我们将介绍可用于通过系统ctl管理系统d服务的系统命令。

服务管理理念

Systemd是现代Linux系统的初始化系统和服务管理器。Init系统是当您打开系统电源时启动的第一个进程,并一直运行到关机。

将system d作为init系统的主要目的是在Linux内核刚开始引导之后初始化各种系统组件。此外,在系统运行时,它还管理各种服务和守护程序,如ssh守护程序、网络管理器等。

SYSTEM D处理单元文件。根据目的和资源的不同,有不同类型的单元文件。例如,服务具有扩展名为.service的单元文件,而设备单元文件具有扩展名为.Device的文件。这个系统控制使用system d的命令管理单元文件。 

重要单位文件和说明

单元扩展描述服务单元。服务系统服务。目标单元。目标一组系统单元。自动装入单元。自动装入文件系统自动装入点。设备单元。设备内核识别的设备文件。装入单元。装载文件系统装入点。路径单元。路径单元。文件系统中的文件或目录。作用域单元。作用域单元。外部创建的进程。切片单元。slice一组分层组织的单元,用于管理系统进程。快照单元。快照单元。系统管理器的保存状态。套接字单元。socketn进程间通信socket.Switp unit.apapA交换设备或交换文件。定时器单元。定时器系统。

单元文件存放在哪里?

单元文件存储在两个位置,最好是在Linux系统中。在运行时和引导时创建的文件存储在/run/systemd/system/中。您手动创建的单元文件(例如,系统ctl启用命令)存储在/etc/systemd/system/中。

/etc/systemd/system/路径优先于/run/systemd/system/中的运行时单元文件。

还有另一个路径,在该路径中,systemd保存系统的服务单元文件的副本。

实例

run systemd system - unit filesrun systemd system - unit files运行系统单元文件

etc systemd system - user enabled unit filesetc systemd system - user enabled unit filesETC SYSTEM&USER启用单元文件

使用系统ctl和nbsp;管理系统服务

首先,让我们看看如何列出服务、检查它们的状态等。如果您想要了解系统的状态以进行调查,这是必需的。

要列出所有SYSTEM D活动单元,您可以使用以下命令。

系统控制列表-单位 

systemctl list-units (1)systemctl list-units (1)系统控制列表-单位(1)

systemctl list-units (2)systemctl list-units (2)系统控制列表-单位(2)

此命令提供具有以下标题的大量输出。使用箭头键(向上、向下、向左和向右)滚动以查看整个输出。

SYSTEM D单元名称

Load–反映系统是否解析了设备的配置文件,并将其加载到内存中

ACTIVE–单元状态(高级状态)。

次级–设备状态(低级状态)

说明单位的说明。

例如,ACTIVE值可以是ACTIVE,而子级别可以是多个,如Running、Listing、Dead和ACTIVE。

更多命令示例:

系统控制列表-单位-全部

系统控制列表-单位–全部–状态=非活动

列表服务

要列出所有类型为SERVICE的设备,请使用以下命令。

系统ctl列表-单位–类型=服务

list loaded serviceslist loaded services列出已加载的服务

您还可以组合其他参数。例如,如果要找出正在运行的服务,请使用以下命令。

系统ctl列表-单元–类型=服务–状态=正在运行

list all running serviceslist all running services列出所有正在运行的服务

您可以使用的其他状态值组合是–

主动型

非活动

运行

死了

已退出

已插入

试探性

倾听

等待

more examples of state valuesmore examples of state values更多州价值的例子

此外,您还可以使用以下命令列出所有单元文件。

系统ctl列表-单位-文件

管理单元文件是一个不同的主题,我将在下一篇文章中讨论。

显示服务状态

要了解服务的状态,请使用以下命令。在本指南中,我使用了NetworkManager服务,该服务控制系统的网络管理。您可以将NetworkManager替换为您自己的服务名称。以下所有命令都需要sudo权限。如果您不知道服务名称,请检查上面的命令以显示所有服务单元,然后使用grep命令进行筛选。

系统ctl状态NetworkManager.service

请注意,您可以省略服务名称末尾的.service。SYSTEM D足够聪明,能够理解命令!

status of a servicestatus of a service服务的状态

在上面的示例中,您可以看到命令中提供了所有信息。它还具有用于标识用户组的cgroup值,这是服务器环境中需要的。

一些更多的命令示例:

系统ctl-Active NetworkManager.service

系统ctl已启用NetworkManager.service

系统ctl IS-网络管理器失败。服务

启动一项服务

启动一项system d服务很容易。使用启动和服务名称运行以下命令。该命令启动该服务。

Sudo system ctl启动NetworkManager.service

停止服务

使用Stop参数,您可以停止服务。例如:

Sudo system ctl停止NetworkManager.service

停止服务时要小心。确保你知道自己在做什么。

重新启动和重新加载服务

SYSTEM D提供配置服务的选项,以使其无需重新启动即可重新启动或重新加载。RESTART参数重新启动服务,重新加载使用配置文件

Sudo system ctl重启NetworkManager.service

Sudo system ctl重新加载NetworkManager.service

restart a servicerestart a service重新启动服务

启用和禁用服务

如果您创建了新的服务或安装了通过服务工作的应用程序,则使用启动命令启动它们将不会在下次启动时再次启用它。因此,如果您希望在系统引导时系统d启动一项服务,则需要使用Enable命令。当您想要在启动时禁用服务时,禁用也是如此。

Sudo system ctl启用NetworkManager.service

ENABLE命令创建从/etc/systemd/system到目标位置的符号链接。

要禁用该服务,请使用以下命令。

Sudo system ctl禁用NetworkManager.service

这些服务及其关联的命令也有许多附加选项。System d是现代Linux系统中一个健壮而重要的组件。我希望这篇指南能帮助你在Linux需要的时候排除台式机或服务器的故障。System d还提供了许多其他特性,例如目标文件、修改服务单元文件等,我将在下一系列文章中介绍这些特性。所有的文章都贴上了SYSTEM D的标签,便于浏览。

类似文章

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注