systemd 服务自启与排障速记

举报
yd_270610013 发表于 2026/11/11 16:27:00 2026/11/11
【摘要】 systemd 是大多数 Linux 发行版的初始化系统与服务管理器。服务能不能开机自启、崩了能不能自己恢复、出了问题去哪查日志,都由它负责。本文把最常用的命令和排障套路记成速查笔记,照着敲就能用。 一、自启:enable 管开机,start 管现在很多人把 enable 和 start 混在一起,其实分工很清楚:enable 只决定开机是否自启,start 只决定现在是否运行。想让服务既开...

systemd 是大多数 Linux 发行版的初始化系统与服务管理器。服务能不能开机自启、崩了能不能自己恢复、出了问题去哪查日志,都由它负责。本文把最常用的命令和排障套路记成速查笔记,照着敲就能用。

一、自启:enable 管开机,start 管现在

很多人把 enable 和 start 混在一起,其实分工很清楚:enable 只决定开机是否自启,start 只决定现在是否运行。想让服务既开机自启、现在也跑起来,两个都要做,或者用 --now 一步到位。

systemctl enable nginx
systemctl is-enabled nginx
systemctl enable --now nginx
systemctl disable nginx

检查自启状态时,enabled 表示已设置自启,disabled 表示未设置。如果服务是 static 或 masked,enable 会报错,这时要先看单元文件本身。

二、查状态:先看 status,再看日志

服务出问题先别急着重启,先看状态和日志,多数原因一眼就能定位。

systemctl status nginx --no-pager -l
systemctl is-active nginx
journalctl -u nginx -n 100 --no-pager
journalctl -u nginx --since "1 hour ago" --no-pager

status 里重点看 Loaded、Active 和最后几行日志;journalctl -u 只看指定服务的日志,加上 --since 可以只看最近一小时,避免被旧日志淹没。

三、启动失败:四类常见原因

第一,ExecStart 路径写错或可执行文件不存在,status 会提示 No such file or directory,修正路径后执行 systemctl daemon-reload 再启动。

第二,端口被占用。Nginx 常用 80 端口,先查占用者,再决定改端口还是停掉冲突进程:

ss -tlnp | grep ':80'
lsof -i :80

第三,权限或目录问题。检查 service 文件里的 User、WorkingDirectory,以及日志目录是否存在、属主是否正确,目录不存在时服务往往静默失败。

第四,依赖还没就绪。服务启动太早、网络还没起来时,可以在 [Unit] 里加 After=network-online.target,并配 Wants=network-online.target。

四、写一个最小的 service 文件

以自定义程序 myapp 为例,新建 /etc/systemd/system/myapp.service:

[Unit]
Description=My App Service
After=network.target

[Service]
Type=simple
ExecStart=/usr/local/bin/myapp
Restart=on-failure
RestartSec=5

[Install]
WantedBy=multi-user.target

写好后依次执行 daemon-reload、enable --now 和 status,确认 Active 为 running。Restart=on-failure 的意思是正常退出不重启、异常退出 5 秒后自动重启,适合常驻服务。

五、排障速查表

restart 是停掉再启动;reload 是不中断服务重载配置,前提是程序支持;daemon-reload 是 systemd 重新读取单元文件,改了 service 文件后必须执行。记不住时就按“改文件—daemon-reload—restart—看 status 与日志”这个顺序走,八成问题十分钟内能定位。

【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0)

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

全部回复

上滑加载中

设置昵称

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

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

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