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`)内容,以理解服务的工作方式。