跳到主要内容
系统常识 Ubuntusystemctljournalctl服务排错

Ubuntu 服务管理与日志:systemctl 与 journalctl

给出 Ubuntu 上服务排错的标准流程:systemctl 看状态、journalctl 翻日志、常见失败原因与恢复手段,附命令速查。

发布于 2026/11/11 所属频道 Ubuntu 与 Debian

结论先行

服务出问题先跑一条命令:systemctl status <服务>,它会同时告诉你状态、最近几行日志和是否启用。要深挖日志用 journalctl。排错顺序固定:状态 → 日志 → 配置 → 重启。

命令速查

systemctl status ssh          # 状态 + 最近日志
systemctl restart ssh         # 重启(改了配置后用)
systemctl enable ssh          # 开机自启
systemctl is-enabled ssh      # 是否已启用
journalctl -u ssh -n 100      # 该服务最近 100 行
journalctl -u ssh --since -1h # 最近一小时

status 输出的三行看什么

输出 含义
active (running) 正常
inactive (dead) 没在跑,看是否本该跑
failed 启动过程报错,日志区看 exit code / status 字样

日志里看到 denied 字样且带 AppArmor 标记,说明是安全模块拦的而不是服务本身坏;看到 Unit ... failed with result 'timeout' 通常是启动脚本卡住。

常见失败原因

  1. 依赖没起:服务要数据库先起来,After=/Wants= 没配对
  2. 端口被占:另一个程序占了同一端口,ss -lntp 查占用者
  3. 配置语法错:改完配置忘了 daemon-reload,或语法校验命令(多数服务有 xxx -t)没跑
  4. 权限不对:ExecStart 里的路径不可执行,或服务用户读不到文件

桌面版(桌面版条目)的服务偏图形栈,服务器版(服务器版条目)偏网络服务,排错命令两边完全一致,索引见 Ubuntu 索引页。

相关链接

本文内容基于公开资料整理,仅供参考;涉及授权与合规的操作请以厂商官方文档为准。

相关推荐下载

按本文主题匹配的官方原版镜像条目

配套 PE 工具

制作启动盘、备份数据、修复引导

其他常识文章

同一集合内的相近主题,按标签与关键词匹配