Linux systemd 服务管理:启动、重启与故障排查

举报
GGBondHere 发表于 2026/10/21 12:21:55 2026/10/21
【摘要】 整理 Linux 云服务器上 systemd 服务管理的常用命令,包括服务状态查看、启动与重启、开机自启、journalctl 日志查询及配置修改后的处理流程,帮助快速排查服务启动失败的问题。

前言

在 Linux 云服务器上部署网站、代理程序或其他后台服务时,经常需要让程序开机自动启动,并在出现问题时查看运行状态。

Ubuntu、Debian 等常见发行版通常使用 systemd 管理系统服务。相比直接在终端里运行程序,systemd 可以统一管理服务的启动、停止、依赖关系和日志。

下面整理几个常用操作,以及服务启动失败时的排查方法。

一、查看服务运行状态

以 Nginx 为例:

systemctl status nginx

重点关注 Active 字段:

  • active (running):服务正在运行。
  • inactive (dead):服务当前未运行。
  • failed:服务启动或运行过程中发生了错误。

需要注意,部分一次性执行任务的服务可能显示 active (exited),不能简单地把它当作异常。

如果只需要查看是否正在运行,可以使用:

systemctl is-active nginx

二、启动、停止与重启

常用命令如下:

sudo systemctl start nginx
sudo systemctl stop nginx
sudo systemctl restart nginx

三条命令分别用于启动、停止和重启服务。

有些服务还支持重新加载配置:

sudo systemctl reload nginx

reload 通常用于让程序重新读取配置,而 restart 会重新启动服务进程。

不过,并非所有服务都支持 reload,具体行为取决于对应的服务配置和程序本身。

三、设置开机自启

启用开机自启:

sudo systemctl enable nginx

取消开机自启:

sudo systemctl disable nginx

查看是否启用:

systemctl is-enabled nginx

这里有一个容易混淆的地方:

enable 不代表立即启动,disable 也不代表立即停止。

如果需要同时启用开机自启并立即启动,可以使用:

sudo systemctl enable --now nginx

四、查看服务日志

服务启动失败时,我更建议先看日志,而不是直接重新安装程序。

查看最近 50 条日志:

journalctl -u nginx -n 50 --no-pager

实时查看新日志:

journalctl -u nginx -f

如果想检查本次系统启动以来的日志,可以执行:

journalctl -b -u nginx

常见错误包括配置文件语法错误、端口被占用、文件权限不足,以及程序依赖的文件或目录不存在。

systemd 日志主要用于查看服务运行记录,程序如果另行写入日志文件,也需要结合应用自身的日志排查。

五、修改服务配置后为什么没生效?

systemd 服务一般通过 unit 文件定义,常见的扩展名是 .service。

可以使用下面的命令查看服务配置:

systemctl cat nginx

如果修改了 systemd 的 unit 文件或者 drop-in 配置,需要重新加载管理器配置:

sudo systemctl daemon-reload

然后根据实际情况重启对应服务:

sudo systemctl restart nginx

需要注意,daemon-reload 只会让 systemd 重新读取相关配置,不会自动重启服务。

如果修改的是 Nginx 自身的 nginx.conf,通常应先进行配置检查:

sudo nginx -t

检查通过后,再决定 reload 或 restart,不需要因为修改应用配置就一律执行 daemon-reload。

六、排查服务启动失败

遇到服务无法启动,可以按顺序检查:

第一步,查看状态:

systemctl status nginx

第二步,查看详细日志:

journalctl -u nginx -n 100 --no-pager

第三步,检查服务定义:

systemctl cat nginx

第四步,如果怀疑端口冲突,可以查看监听情况:

sudo ss -lntp

确认具体报错后再修改配置。

对于正在提供业务的服务器,不建议反复执行重启命令来碰运气,尤其是涉及数据库等重要服务时。

七、总结

systemd 服务管理最常用的命令其实不多:

  1. status:查看状态。
  2. start、stop、restart:控制服务。
  3. enable、disable:管理开机自启。
  4. journalctl:查看服务日志。
  5. daemon-reload:重新加载 systemd 管理器配置。

日常维护中,重点是区分服务是否正在运行、是否设置了开机自启,以及配置修改后究竟需要 reload 还是 restart。

养成先查看状态和日志、再进行操作的习惯,能减少很多不必要的排障时间。

【版权声明】本文为华为云社区用户原创内容,未经允许不得转载,如需转载请自行联系原作者进行授权。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0)

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。