> 软件包与系统管理 > systemctl

systemctl 命令指南:systemd 服务管理的核心

`systemctl` 命令是 systemd 系统和服务管理器的核心工具。systemd 是最新 Linux 发行版中用于管理系统启动过程、服务、挂载点、套接字等的标准。通过 `systemctl`,可以检查服务状态,启动/停止/重启服务,并设置系统启动时是否自动运行等,从而高效地控制整个系统。通过本指南,了解 `systemctl` 的多种应用方式。

systemctl 概述

systemd 是管理系统启动过程的 init 系统,并控制系统启动后在后台运行的所有服务(守护进程)。`systemctl` 提供了一个接口,使得可以在命令行中操作这些 systemd 的功能。过去的 `service`、`chkconfig`、`reboot`、`shutdown` 等多个命令已被整合为一个 `systemctl`。

理解 systemd 单元 (Unit)

systemd 将管理的所有内容抽象为 '单元 (Unit)' 的概念。每个单元表示特定的服务、挂载点、设备等。最常见的单元类型有 `服务单元 (.service)`、`套接字单元 (.socket)`、`挂载单元 (.mount)`、`设备单元 (.device)`、`目标单元 (.target)` 等。通常情况下,`.service` 扩展名会被省略。

systemctl 的主要功能

  • 检查服务状态: 确定正在运行的服务、已激活的服务、失败的服务等。
  • 控制服务: 启动、停止、重启和重新加载(重新读取配置)服务。
  • 设置服务自动启动: 设置或解除系统启动时服务自动启动。
  • 系统电源管理: 重新启动、关闭系统或切换至休眠模式。
  • 管理单元文件: 检查和修改单元文件的位置、依赖关系等。

主要 systemctl 命令选项

`systemctl` 命令提供了丰富的选项以实现服务管理、系统电源控制、单元文件管理等多种功能。大多数与服务相关的命令需要 `sudo` 权限。

1. 服务状态与控制

2. 设置服务自动启动

3. 系统电源管理

4. 单元文件及列表

生成的命令:

请尝试组合命令。

描述:

`systemctl` 执行命令。

通过组合这些选项,您可以与 AI 一起虚拟地执行命令。

使用示例

`systemctl` 命令的多种应用示例,帮助您了解如何在基于 systemd 的系统中有效管理服务。

检查 Web 服务器 (Nginx) 服务状态

systemctl status nginx.service

检查 Nginx Web 服务器当前是否在运行、是否处于非激活状态或是否发生了错误等详细信息。

启动 MySQL 服务

sudo systemctl start mysql.service

启动 MySQL 数据库服务。

重启 SSH 服务

sudo systemctl restart sshd.service

重启 SSH (Secure Shell) 服务。在更改配置文件后应用时非常有用。

设置 Apache Web 服务器自动启动

sudo systemctl enable apache2.service

设置系统启动时 Apache Web 服务器自动启动。

查看所有激活服务列表

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

列出当前系统中处于 'active' 状态(正在运行或准备就绪)的所有服务单元。

通过 systemd 重启系统

sudo systemctl reboot

以推荐的方式安全地重启系统。

查看特定服务单元文件内容

systemctl cat redis-server.service

检查 Redis 服务的 systemd 单元文件(例如:`/etc/systemd/system/redis.service`)内容,以理解服务的工作方式。


相同类别命令