视窗苹果电脑软件设置安全生产力Linux安卓性能配置苹果自定义设备管理iPhone设置 全部

如何在 Fedora 中使用 systemd 管理服务

已编辑 4 几个月前 通过 ExtremeHow 编辑团队

帽子系统管理套件服务管理命令行终端软件系统管理配置计算机

如何在 Fedora 中使用 systemd 管理服务

翻译更新 4 几个月前

在现代 Linux 发行版上管理服务对于系统管理员以及需要维护对机器上运行的服务进行控制的用户来说是很重要的。Fedora 是一个流行的 Linux 发行版,使用 systemd 作为其系统和服务管理器。本文将解释如何在 Fedora 中使用 systemd 有效地管理服务。我们将涵盖如何启动、停止、启用、禁用和检查服务状态,以及创建自定义服务单元等主题。无论您是 Fedora 或 Linux 系统的新手,还是需要刷新知识的经验用户,这个综合指南对每个人都很有用。

systemd简介

Systemd 是一个提供设计用于替换传统 Unix System Vsysv)和 BSD init 的系统和服务管理器的工具。它提供按需启动守护程序、服务监控、快照支持等功能。Nicer 依赖于服务。systemd 的核心通过 systemctl 命令进行管理,该命令负责检查和控制systemd系统和服务管理器的状态。

systemd 组件

在我们深入了解 systemd 实际用法之前,了解它的主要组件是很有帮助的:

了解服务单元

服务单元是 systemd 中最常见的单元类型。这些单元包含定义服务是什么、如何启动或停止、它依赖什么以及其他具体行为的设置。

服务单元文件通常位于/etc/systemd/system/usr/lib/systemd/system中,其语法如下:

[Unit]
Description=My Sample Service
[Service]
ExecStart=/usr/bin/my-service
ExecStop=/usr/bin/my-service-stop
Restart=on-failure
[Install]
WantedBy=multi-user.target

每个服务文件通常包含以下部分:

使用systemctl管理服务

systemctl命令用于监控和控制systemd。以下是常见任务,以及如何使用systemctl执行这些任务:

检查服务状态

要检查服务的状态,请使用:

systemctl status my-service.service

此命令将提供有关服务状态、最近日志等的信息。

启动服务

您可以使用以下命令启动服务:

systemctl start my-service.service

手动启动服务并不意味着它会在启动时自动启动。

停止服务

以下命令用于停止服务:

systemctl stop my-service.service

此命令会停止服务,直到手动重启或重启。

重启服务

要重启服务,请使用:

systemctl restart my-service.service

此操作会停止服务(如果正在运行)然后重新启动。

启用和禁用服务

要在系统启动时自动启动服务,请启用它,如下所示:

systemctl enable my-service.service

相反,要禁用服务以使其不在启动时启动,请使用:

systemctl disable my-service.service

启用服务会将服务的单元文件从系统的启动配置创建符号链接。

使用守护进程重新加载

如果您修改了 unit 文件或 systemd 树中的配置,通常需要重新加载 systemd:

systemctl daemon-reload

此命令通知 systemd 扫描新的或修改的单元文件。

创建自定义服务单元

创建自定义服务可以让您将自己的应用程序作为托管服务运行。以下是创建它的简单步骤:

步骤 1:创建单元文件

打开文本编辑器,在/etc/systemd/system/目录中创建一个新的服务单元文件:

sudo nano /etc/systemd/system/my-custom-service.service

用所需的服务定义填充它:

[Unit]
Description=Custom Service Example
[Service]
ExecStart=/usr/bin/custom-script.sh
Restart=on-failure
[Install]
WantedBy=multi-user.target

步骤 2:设置权限

确保ExecStart中调用的脚本或程序具有正确的权限:

chmod +x /usr/bin/custom-script.sh

步骤 3:重新加载 systemd

创建新单元文件后,重新加载 systemd:

systemctl daemon-reload

步骤 4:启动并启用服务

现在启动并启用您的自定义服务:

systemctl start my-custom-service.service
systemctl enable my-custom-service.service

您的自定义服务现在应该可以像其他系统服务一样管理。

使用systemd目标

目标端点是允许您抽象传统 init 系统中运行级别概念的配置。它们有助于管理服务和其他单元之间的依赖关系,提供一种将多个服务和单元组合在一起的方法。

列出可用目标

要找出系统上的可用目标,请使用:

systemctl list-units --type=target

更改运行级别

要更改目标或运行级别,请使用:

systemctl isolate multi-user.target

此命令相当于将运行级别更改为多用户模式。

使用journalctl了解日志

Systemd 配备了一个集成的系统日志工具,称为 journalctl。这个日志管理工具将 systemd 管理的所有服务的日志整合到一个中央存储库中。

查看日志

要查看特定服务的日志,请使用:

journalctl -u my-service.service

实时日志记录

当监控生成的日志实时变化时,使用以下标志:

journalctl -u my-service.service -f

故障排除常见问题

有时在顺利管理服务方面会出现问题。知道如何进行故障排除是无价的:

结论

有效的服务管理是 Fedora 和其他使用 systemd 的 Linux 发行版系统管理的基础。本指南向您展示了如何使用 systemctl 管理服务的各个方面,从执行基本任务(如启动和停止服务)到创建自定义服务单元以及使用 journalctl 处理日志。具备这些技能,您可以确保系统顺利有效地运行,自动执行任务,并有效地管理系统服务。

请记住,在 Linux 世界中,您在系统上执行的任何操作可能需要 root 特权。确保您拥有正确的权限,并在对关键系统配置进行更改之前始终备份重要文件。了解 systemd 及其提供的工具对于有效的 Linux 服务管理来说无价之宝。

如果你发现文章内容有误, 您可以


评论