小服务器服务起不来别慌:先查这三处

举报
yd_230305343 发表于 2026/11/08 10:11:09 2026/11/08
【摘要】 小服务器上最让人心跳漏一拍的时刻,莫过于重启之后发现网站打不开、接口全超时。很多人第一反应是再重启一次,或者干脆重装。其实绝大多数「服务起不来」都有明确的原因写在机器里,按顺序查三处,基本都能定位。第一处:服务到底是什么状态先别猜,直接问 systemd:systemctl status 服务名重点看两行:Active: 是 failed 还是 inactive;下面最近的几行日志往往直接写...

小服务器上最让人心跳漏一拍的时刻,莫过于重启之后发现网站打不开、接口全超时。很多人第一反应是再重启一次,或者干脆重装。其实绝大多数「服务起不来」都有明确的原因写在机器里,按顺序查三处,基本都能定位。

第一处:服务到底是什么状态

先别猜,直接问 systemd:

systemctl status 服务名

重点看两行:Active: 是 failed 还是 inactive;下面最近的几行日志往往直接写了失败原因,比如配置文件路径不对、端口被占用、权限不足。如果是 inactive,说明它压根没被拉起来,检查一下是否设置了开机自启:

systemctl is-enabled 服务名

显示 disabled 就是没设自启,systemctl enable --now 服务名 一条命令同时设好并立即启动。

第二处:端口有没有在听、被谁占了

服务显示 running 却连不上,多半是端口问题。查监听状态:

ss -tlnp | grep 端口号

没有输出,说明服务没真正监听,多半是启动过程中又退出了,回到第一处看日志。有输出但进程名不是你的服务,说明端口被别的进程占了——新服务起不来、老进程没退干净是最常见的一种,确认那个进程的来历后再处理,不要不分青红皂白直接杀。端口在听、本机 curl 127.0.0.1:端口 能通但外网不通,那就是防火墙或安全组没放行,去控制台安全组里核对入方向规则。

第三处:完整日志看尾部

status 只给最后几行,要看全貌用 journalctl:

journalctl -u 服务名 -n 100 --no-pager
journalctl -u 服务名 -f

第一条看最近 100 行,第二条实时跟踪(重启服务时另开窗口盯着它,报错出现的那一秒最真实)。日志里最常见的三类词:Permission denied 是文件权限或属主问题;Address already in use 就是端口被占;No such file or directory 是配置里写的路径不存在,十有八九是改过目录没同步改配置。

一个顺手的习惯

每次改完配置,先验证再重启:nginx 用 nginx -t,其他服务大多也有自检参数。验证通过再 systemctl restart,能避免「改了一个小错,服务直接躺平」的尴尬。另外把 systemctl status、ss -tlnp、journalctl -u 这三条命令记在顺手的地方,真出事的时候不用现查。

服务起不来不可怕,可怕的是不知道它为什么起不来。状态、端口、日志三处查完,原因基本就现形了,剩下的就是对症下药。

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

评论(0)

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

全部回复

上滑加载中

设置昵称

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

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

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