type
status
date
slug
summary
tags
category
icon
password
菜单级别
Place
Verification
Owner
systemctl 是 Linux 系统中用于管理 systemd 服务的核心命令。systemd 是现代 Linux 发行版(如 Ubuntu 16.04+、CentOS 7+、Debian 8+)的默认初始化系统和服务管理器。
什么是 systemd
systemd 是 Linux 系统的初始化系统(init system),负责:
- 启动和管理系统服务
- 并行启动服务以加快启动速度
- 按需启动服务
- 管理系统状态
- 处理日志记录
systemctl 基本语法
单元(Unit)类型:
- service:系统服务(最常用)
- socket:进程间通信套接字
- target:多个单元的组合
- device:硬件设备
- mount:文件系统挂载点
- timer:定时器
服务管理命令
启动服务
停止服务
重启服务
重新加载配置(不中断服务)
reload vs restart:
-reload:重新加载配置文件,服务不中断
-restart:完全停止后重新启动,会短暂中断
重启或重新加载(智能选择)
服务状态查询
查看服务状态
输出示例:
状态说明:
- loaded:服务配置已加载
- active (running):服务正在运行
- active (exited):一次性任务已完成
- inactive (dead):服务未运行
- failed:服务启动失败
检查服务是否运行
检查服务是否启用
检查服务是否失败
开机自启动管理
启用开机自启动
这会在相应的 target 目录创建符号链接。
禁用开机自启动
启用并立即启动
禁用并立即停止
服务列表查看
列出所有服务
列出所有服务(包括未激活的)
列出正在运行的服务
列出失败的服务
列出所有已安装的服务文件
输出示例:
查看服务日志
查看服务日志
查看实时日志(类似 tail -f)
查看最近的日志
查看启动日志
系统管理命令
重启系统
关机
挂起系统
休眠系统
进入救援模式
高级用法
屏蔽服务(防止启动)
屏蔽与禁用的区别:
- disable:禁止开机自启,但可以手动启动
- mask:完全禁止启动,手动也无法启动
编辑服务配置
这会在
/etc/systemd/system/<服务名>.d/ 下创建覆盖文件。重新加载 systemd 配置
查看服务依赖关系
查看服务属性
创建自定义服务
服务文件位置
- 系统服务:
/lib/systemd/system/或/usr/lib/systemd/system/
- 用户自定义:
/etc/systemd/system/(优先级更高)
示例:创建简单服务
创建文件
/etc/systemd/system/myapp.service:配置说明:
- [Unit]:单元描述和依赖
Description:服务描述After:在哪些服务之后启动
- [Service]:服务配置
Type:服务类型(simple, forking, oneshot 等)User:运行用户ExecStart:启动命令Restart:重启策略
- [Install]:安装配置
WantedBy:由哪个 target 管理
启用自定义服务
实战案例
案例 1:Web 服务器部署
案例 2:服务监控脚本
案例 3:自动重启失败的服务
创建
/etc/systemd/system/myapp.service:配置解释:
Restart=always:总是重启
RestartSec=5:重启前等待5秒
StartLimitInterval=60:60秒内
StartLimitBurst=3:最多重启3次
案例 4:定时任务服务
创建服务文件
/etc/systemd/system/backup.service:创建定时器文件
/etc/systemd/system/backup.timer:启用定时器:
常见问题排查
服务启动失败
服务无法停止
配置修改不生效
快速参考
任务 | 命令 |
启动服务 | systemctl start <服务> |
停止服务 | systemctl stop <服务> |
重启服务 | systemctl restart <服务> |
重载配置 | systemctl reload <服务> |
查看状态 | systemctl status <服务> |
启用自启 | systemctl enable <服务> |
禁用自启 | systemctl disable <服务> |
查看日志 | journalctl -u <服务> |
实时日志 | journalctl -u <服务> -f |
列出服务 | systemctl list-units --type=service |
重载 systemd | systemctl daemon-reload |
总结
systemctl 是管理 Linux 服务的强大工具,掌握它能够:
- 高效管理系统服务
- 配置服务自启动
- 监控服务状态
- 作者:Orz
- 链接:https://blog.1567890.xyz/learning/linux-systemctl-guide
- 声明:本文采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处。

