20个systemctl命令详解:Linux系统与服务管理指南

本文详细介绍了20个实用的systemctl命令,涵盖服务启动停止、系统关机重启、运行模式切换等关键操作,帮助Linux管理员高效管理系统服务配置和故障排查,适用于本地和云环境部署。

20个systemctl命令用于系统和服务管理

Linux管理员需要管理的系统比以往任何时候都多。管理系统和服务设置可能具有挑战性,但systemctl命令可以使这些任务变得更轻松。

系统和服务管理简介

系统和服务管理是确保客户满意度和服务交付的关键组成部分。Linux systemctl命令为管理员简化了这些管理任务。

如今,越来越多的Linux管理员在云环境中工作,他们需要完成各种系统和服务管理任务。systemctl命令可以管理系统和服务配置,使管理员能够管理操作系统并控制服务配置。此外,systemctl还可用于故障排除和基本性能调优。

本文介绍了20个最常见的systemctl命令用法,帮助您理解其功能并将知识应用于关键配置任务。

快速语法回顾

首先,让我们回顾一下systemctl命令的正确用法。基本语法模式如下:

1
systemctl 子命令 参数

例如,要重启sshd服务,请输入以下命令:

1
# systemctl restart sshd

在此示例中,子命令(也称为参数)是restart。参数是{servicename}值,在本例中为sshd(SSH)。常见参数包括start、stop、restart和status。

某些参数接受其他选项。例如,您可以指定enable参数,然后添加–now选项以使其立即启动,这使您可以跳过使用单独的systemctl start {service-name}命令。

存在许多systemctl参数,本文仅涵盖其中一部分。要查看所有可用的子命令,请尝试以下技巧:输入systemctl,按一次空格键,然后按两次Tab键。这是正常的Bash标签完成功能。此技巧显示子命令或参数的完整列表。

许多现代Linux发行版禁用了root用户帐户。在这种情况下,管理员必须在以下命令前加上sudo。

systemctl命令对于负责系统和服务管理任务的Linux管理员至关重要。

20个systemctl命令用法

让我们评估20种使用systemctl命令来更好地理解和管理Linux系统的方法。

1. 启动服务

管理员的常见任务是重启服务。每当管理员修改配置文件时,必须重启相关服务,以便它可以重新读取文件并应用更改。

使用以下命令手动启动服务:

1
# systemctl start {servicename}

2. 停止服务

要使用systemctl手动停止服务,请输入:

1
# systemctl stop {servicename}

3. 重启服务

与其手动停止然后启动服务,不如使用restart子命令更快:

1
# systemctl restart {servicename}

4. 重启系统

重启服务器是systemctl的基本任务。

要重启,请输入:

1
# systemctl reboot

5. 关闭系统

要启动关机过程,请输入:

1
# systemctl poweroff

6. 显示默认界面

Linux服务器通常启动到CLI,在systemd术语中,这是multi-user.target模式。但在许多情况下,管理员可能更喜欢GUI(graphical.target)。

要显示当前默认值,请输入:

1
# systemctl get-default

7. 将默认界面更改为GUI

要将当前默认值从multi-user.target CLI更改为GUI目标,请输入:

1
# systemctl set-default graphical.target

8. 切换到multi-user.target界面

要切换到multi-user.target而不更改graphical.target的默认值,请输入:

1
# systemctl isolate multi-user.target

9. 切换到救援模式

要切换到救援模式进行故障排除,请输入:

1
# systemctl rescue

10. 显示服务状态

您可以通过多种方式显示服务状态。在某些情况下,管理员可能希望查看所有服务的信息。在其他情况下,他们可能只想管理单个服务。无论哪种方式,systemctl都可以提供帮助。

要查看所有服务的状态,请输入:

1
# systemctl list-units --type=service

11. 按当前状态列出服务

要按状态列出服务,请输入:

1
# systemctl list-units --type=service --state=active

–state=的可能值包括running、stopped、enabled、disabled和failed。

1
# systemctl list-units --failed

12. 防止服务启动

已停止或禁用的服务如果被其他服务调用,仍然可以启动。要防止服务在任何情况下启动,请使用mask子命令。此设置将服务配置链接到/dev/null文件。

1
# systemctl mask {servicename}

13. 启用服务

启动和停止服务仅适用于当前运行时。如果管理员需要配置服务在系统启动时启动,他们可以使用enable命令执行该操作:

1
# systemctl enable {servicename}

14. 禁用服务

同样,如果管理员需要配置服务在系统启动时不启动,他们可以输入disable命令:

1
# systemctl disable {servicename}

15. 确认活动状态

systemctl命令使用以下命令和is-enabled参数确认特定服务的当前和启动状态:

1
# systemctl is-active {servicename}

16. 确认启用状态

systemctl还使用以下命令确认特定服务的状态:

1
# systemctl is-enabled {servicename}

17. 使用信号15终止服务

使用kill子命令终止服务。但是,尽可能使用stop子命令。默认情况下,systemctl kill发送信号15,该信号发送终止服务的请求,并使系统能够在此过程中进行清理。

以下是信号15的kill示例:

1
# systemctl kill {servicename}

18. 使用信号9终止服务

要强制系统立即终止服务,管理员可以通过输入以下命令发送信号9:

1
# systemctl kill -s 9 {servicename}

19. 分析服务

您可能希望在systemctl管理场景中包含systemd-analyze命令。虽然这是一个不同的命令,但它仍然与服务管理相关。

基本的systemd-analyze命令报告系统启动时间,分解为内核在进入用户空间之前加载所需的时间以及用户空间组件加载所需的时间。这是启动时间的基本度量。

1
# systemd-analyze

20. 显示服务启动时间

在服务上下文中,按服务启动时间过滤systemd-analyze命令甚至更有用。要查看显示服务启动时间的列表,请输入:

1
# systemd-analyze blame

某些服务在等待其他服务加载时可能会延迟。尽管如此,这对于确定哪些服务减慢了系统启动时间可能是有用的信息。

最终思考

如今的管理员管理的本地和云托管Linux系统比以往任何时候都多。服务管理和监控对于确保向消费者及时交付资源至关重要。systemctl命令是一个关键的管理工具,支持基本的系统配置任务和服务管理。这些元素是任何Linux系统在本地或云部署中角色的核心。

使用以下最佳实践从systemctl命令中获得最大收益:

  • 使用sudo权限提升运行systemctl命令
  • 在任何配置文件更改后重启服务
  • 使用systemctl status {servicename}命令进行故障排除、配置审核和验证服务功能
  • 禁用不必要的服务以减少系统的攻击面
  • 屏蔽不必要的服务,以防止它们被其他进程或用户意外启动,提供更安全和受控的配置
  • 使用systemctl –failed命令识别和排查失败的单元

管理系统和服务设置是任何Linux管理员的关键技能。

comments powered by Disqus
使用 Hugo 构建
主题 StackJimmy 设计