已编辑 2 几周前 通过 ExtremeHow 编辑团队
初始化服务命令行系统管理套件管理控制启动脚本系统管理员配置监控
翻译更新 6 几天前
在任何基于 Linux 的系统中,服务都是一个不可或缺的方面。这些服务是后台进程,持续运行以为各种功能提供支持,例如网络、数据库托管、网络服务器等。高效管理这些服务是系统管理的重要组成部分。本指南将解释如何使用 systemctl
管理服务,这是一个用于监控和控制 systemd 系统和服务管理器的命令行工具。
在深入探讨 systemctl
之前,有必要了解什么是 systemd。Systemd 是一个 Linux 的系统和服务管理器,提供并行化能力,使用套接字和 D-Bus 激活来启动服务,提供按需守护进程启动,使用 Linux 控制组跟踪进程,并维护挂载和自动挂载点。
systemctl
是用于管理 systemd 的命令行工具。它提供了许多选项来控制和管理服务和单元。单元是 systemd 知道如何管理的资源;这些通常包括服务,但也包括挂载点和套接字等其他类型。
在管理服务之前,了解如何列出服务以了解当前正在运行的服务是很好的。以下命令将有所帮助:
systemctl list-units --type service --all
此命令列出所有服务,并显示每个服务的状态。输出将显示每个服务是活跃的、不活跃的还是失败的。
要启动当前未运行的服务,请使用 start
命令,如下所示:
sudo systemctl start <service-name>
例如,要启动 Apache HTTP 服务器,您可以运行:
sudo systemctl start httpd
如果您需要停止服务,可以使用 stop
命令。这在各种场景中是有用的,例如执行维护或更新时:
sudo systemctl stop <service-name>
示例:
sudo systemctl stop httpd
这会停止 Apache HTTP 服务器运行。
有时,与其停止和重启服务,您可能希望直接重启它。可以使用 restart
命令来实现:
sudo systemctl restart <service-name>
示例:
sudo systemctl restart httpd
这会重启 Apache HTTP 服务器。这在您修改配置文件并希望服务重新加载这些更改时特别有用。
要检查服务是否正在运行,您可以使用 status
命令。这样做可以获取有关服务当前状态、任何错误消息和日志输出的信息:
systemctl status <service-name>
例如:
systemctl status httpd
这将显示关于 httpd 服务的详细信息,显示它是否活跃、启用,或者最近启动时是否出现任何问题。
启用服务可确保它在启动时自动启动。相反,禁用服务意味着它不会自动启动:
sudo systemctl enable <service-name>
sudo systemctl disable <service-name>
例如,要启用 Apache HTTP 服务器:
sudo systemctl enable httpd
同样,要禁止自动启动:
sudo systemctl disable httpd
启用对于您希望系统开启时始终运行的服务特别有用,例如网络或数据库服务器。
屏蔽服务是一种强大的方法,可以确保服务完全不运行。一旦服务被屏蔽,无法以任何方式启动,直到取消屏蔽:
sudo systemctl mask <service-name>
sudo systemctl unmask <service-name>
示例:
sudo systemctl mask httpd
此命令确保即使您尝试启动 Apache HTTP 服务器,它也不会启动。要再次允许它运行,请取消屏蔽:
sudo systemctl unmask httpd
如果您对与 systemd 相关的配置文件进行更改,您必须使用以下命令重新加载 systemd 管理器配置:
sudo systemctl daemon-reload
当您在 /etc/systemd/system
或 /lib/systemd/system
目录中添加新配置文件或更改现有文件时,此命令尤为重要。
有时,您可能需要编辑服务单元文件以自定义服务行为。使用 systemctl,您可以无需直接访问服务文件而进行此操作:
sudo systemctl edit <service-name>
这会在您的默认文本编辑器中打开单元文件。一旦保存更改并关闭编辑器,systemctl 将创建一个覆盖。不要忘记随后重新加载 systemd 管理器配置。
使用 systemctl
管理服务是任何 Linux 系统管理员的一项必备技能。这个强大的工具为控制系统上运行的服务提供了一种简单的命令。无论您是在启动、停止、启用还是禁用服务,systemctl
都简化了这些过程,提高了系统的可靠性和性能。
理解服务管理的不同级别也很重要,从简单操作(如启动和停止)到复杂操作(如屏蔽或编辑单元文件)。随着您越来越熟练使用 systemctl,您将能够更有效地管理 Linux 系统上的服务,这将有助于整体系统稳定性和效率。
如果你发现文章内容有误, 您可以