📖 systemctl 服务管理速查

按使用场景分组,点击"复制"按钮一键复制命令

服务状态与启停
查看服务状态(Active 行 + Main PID + 最近日志一次看全);退出码语义随 systemd 版本不同,脚本判断状态用 is-active 更稳
systemctl status nginx
启动服务(已运行则无操作)
sudo systemctl start nginx
停止服务
sudo systemctl stop nginx
重启服务(先停后起,会中断现有连接)
sudo systemctl restart nginx
重载配置(不中断服务,需服务自身支持 reload)
sudo systemctl reload nginx
仅当服务正在运行时才重启(未运行则跳过)
sudo systemctl try-restart nginx
开机自启与禁用
设置开机自启(只是下次开机生效,不会立刻启动)
sudo systemctl enable nginx
取消开机自启(不会停止当前正在运行的服务)
sudo systemctl disable nginx
彻底禁止服务被启动(连手动 start 也会拒绝)
sudo systemctl mask nginx
解除禁止启动
sudo systemctl unmask nginx
查看是否已开机自启(enabled / disabled / masked / static);个别版本 mask 后仍显示 disabled,以 start 被拒为准
systemctl is-enabled nginx
列出所有已设置开机自启的服务
systemctl list-unit-files --type=service --state=enabled
查询运行状态
只判断是否运行中(输出 active,适合脚本里用)
systemctl is-active nginx
判断是否启动失败(输出 failed,否则 inactive)
systemctl is-failed nginx
列出当前正在运行的所有服务
systemctl list-units --type=service --state=running
只列出启动失败的服务(排障第一步)
systemctl --failed
查看服务主进程 PID(输出 MainPID=1234)
systemctl show -p MainPID nginx
查看服务的依赖树(谁依赖它、它依赖谁)
systemctl list-dependencies nginx
配置文件与重载
查看服务实际生效的 unit 文件内容(含 drop-in 覆盖)
systemctl cat nginx
新建 drop-in 覆盖配置(推荐,不改原文件、升级不丢)
sudo systemctl edit nginx
复制完整 unit 文件到 /etc 后编辑(改动大时用)
sudo systemctl edit --full nginx
修改 unit 文件后让 systemd 重新读取配置
sudo systemctl daemon-reload
查看服务全部属性(ExecStart、Environment 等)
systemctl show nginx
排查与日志
清空失败计数(重启过频被限流时用)
sudo systemctl reset-failed nginx
查看服务最近 100 行日志(不进分页器)
journalctl -u nginx -n 100 --no-pager
实时跟踪服务日志(等价 tail -f)
journalctl -u nginx -f
只看本次开机以来的错误级日志
journalctl -u nginx -b -p err --no-pager
按耗时排序开机各阶段,找出拖慢启动的服务
systemd-analyze blame