目录
1. 基本语法
2. 基础命令速查表
3. 常用示例
3.1 部署新服务后,设置开机自启并启动
3.2 检查系统中所有失败的服务并尝试修复
3.3 查看系统中所有开机自启的服务
4. 总结
以下是 systemctl
使用指南,涵盖服务管理、单元操作、运行级别控制、电源管理及常用示例,帮助您高效管理 Linux 系统服务和进程。
1. 基本语法
systemctl [选项...] 命令 [服务名|.target|.mount等]
- 选项:可选参数,如
--quiet
(静默模式)、--user
(用户级服务)。 - 命令:操作类型(如
start
、stop
、enable
)。 - 服务名:目标服务名称(如
nginx.service
)。
2. 基础命令速查表
命令 | 作用 | 示例 |
---|---|---|
| 启动指定服务 |
|
| 停止指定服务 |
|
| 重启服务(先停止再启动) |
|
| 重新加载配置(不中断服务,更轻量) |
|
| 仅当服务运行时才重启,否则不操作 |
|
systemctl status | 查看服务详细状态 | systemctl status nginx |
| 配置服务开机自启 |
|
| 禁用开机自启(仍可手动启动) |
|
| 立即启动并配置开机自启(合并操作) |
|
systemctl is-active <服务名> | 仅检查服务是否活跃 | systemctl is-active nginx |
systemctl is-enabled <服务名> | 检查服务是否开机自启 | systemctl is-enabled nginx |
| 彻底禁用服务(禁止手动 / 自动启动) |
|
| 取消彻底禁用 |
|
systemctl list-units | 列出当前活跃的所有单元(默认) | |
systemctl list-units --all | 列出所有单元(包括未运行、失败的) | |
systemctl list-units --type=service | 仅显示服务单元 | |
systemctl list-units --type=timer | 仅显示定时器单元 | |
systemctl list-unit-files | 列出所有单元文件 | |
systemctl cat <服务名> | 查看单元文件内容(如服务的配置脚本) | systemctl cat nginx.service |
systemctl show <服务名> | 查看单元的详细属性(配置、依赖等) | systemctl show sshd.service |
systemctl list-dependencies <服务名> | 查看<服务名> 依赖的服务 | systemctl list-dependencies nginx.service |
systemctl list-dependencies --reverse <服务名> | 查看依赖<服务名> 的服务 | systemctl list-dependencies --reverse nginx.service |
systemctl reboot | 重启系统 | |
systemctl poweroff | 关机并切断电源 | |
systemctl halt | 关闭系统(与 poweroff 功能类似) | |
systemctl suspend | 进入休眠(数据存内存,需持续供电) | |
systemctl hibernate | 进入休眠(数据存硬盘,可断电) | |
systemctl rescue | 进入救援模式(单用户,用于修复) | |
systemctl emergency | 进入紧急模式(最小环境,极端修复) | |
systemctl get-default | 查看当前系统目标 | |
systemctl isolate <目标名>.target | 切换系统目标 | (切换到图形界面)
|
systemctl set-default <目标名>.target | 设置默认启动目标 | (设置为多用户模式) systemctl set-default multi-user.target |
PS:
# 查看系统启动耗时
systemd-analyze# 查看每个服务启动的耗时
systemd-analyze blame
3. 常用示例
3.1 部署新服务后,设置开机自启并启动
systemctl enable myservice --now
3.2 检查系统中所有失败的服务并尝试修复
systemctl list-units --failed --type=service
systemctl reset-failed # 重置失败状态
systemctl restart 失败的服务名
3.3 查看系统中所有开机自启的服务
systemctl list-unit-files --type=service | grep enabled
4. 总结
systemctl
是 Linux 系统管理的核心工具,掌握以下技能将极大提升您的效率:
- 服务管理:启动、停止、重启、设置开机自启。
- 单元操作:管理服务、挂载点、定时任务等。
- 运行级别控制:切换
target
实现多用户/图形界面切换。 - 电源管理:关机、重启、挂起等操作。
- 故障排查:日志查看、服务调试、自定义服务配置。