Linux 服務與日誌排查教學:systemctl、journalctl、service failed 怎麼看

網站或 VPS 服務掛掉時,不要只會重開機。本文教你用 systemctl status、journalctl -u、systemctl restart、enable、failed 來查看服務狀態、讀日誌、找出 Nginx、PHP-FPM、Docker 等服務錯誤。

Linuxsystemctljournalctlsystemd服務管理日誌VPSNginxPHP-FPMDocker排錯service failed

VPS 出問題時,很多新手第一個反應是「重開機看看」。有時候會恢復,但你其實不知道問題是什麼。比較好的方式是先看是哪個服務失敗、日誌寫了什麼,再決定要改設定、重啟服務,還是安排維護。

這篇教你用 systemctljournalctl 做基本服務排查。這是 Linux 管理中非常實用的一組工具。

Linux 服務與日誌排查流程圖

你會先搞懂這幾件事

  • systemctl status:看服務目前狀態。
  • systemctl restart:重啟服務,不等於重開整台主機。
  • journalctl -u:看指定服務的日誌。
  • systemctl --failed:看目前有哪些服務失敗。
  • 改設定後要先測試設定檔,再重啟服務。

先看服務狀態

systemctl status nginx
systemctl status ssh
systemctl status docker

常見狀態:

狀態意義
active (running)服務正在執行
inactive服務沒有啟動
failed服務啟動失敗或執行中出錯
enabled開機會自動啟動
disabled開機不會自動啟動

如果服務是 failed,不要只看紅字,往下看錯誤訊息與最近日誌。

看指定服務日誌

journalctl -u nginx --since "1 hour ago"
journalctl -u ssh --since today
journalctl -u docker -n 100

常用方式:

指令用途
journalctl -u nginx看 Nginx 服務日誌
journalctl -u nginx -n 100看最後 100 行
journalctl -u nginx -f即時追蹤
journalctl -u nginx --since today看今天以後
journalctl -p err -b看本次開機的錯誤等級日誌

日誌不是要整段貼上就結束。你要找的是:

  • 哪個檔案或設定出錯。
  • 哪個 port 被占用。
  • 權限是否不足。
  • 服務是否找不到檔案。
  • 是否因為記憶體或磁碟空間不足而失敗。

重啟服務與重新載入設定

sudo systemctl restart nginx
sudo systemctl reload nginx
sudo systemctl restart php8.3-fpm

restart 會重啟服務;reload 通常是重新載入設定但不中斷整個服務,是否支援要看服務本身。

Nginx 改設定前,建議先測試:

sudo nginx -t

PHP-FPM 版本要看你實際環境,不一定是 php8.3-fpm。可以先查:

systemctl list-units --type=service | grep php

檢查哪些服務失敗

systemctl --failed

這個指令很適合在主機重開後或服務異常時先跑一次。

如果看到失敗服務,可以接著:

systemctl status 服務名稱
journalctl -u 服務名稱 -n 100

先看原因,再決定下一步。

開機自動啟動

sudo systemctl enable nginx
sudo systemctl disable nginx

enable 代表開機自動啟動,不代表現在立刻啟動。現在要啟動用:

sudo systemctl start nginx

常見組合:

sudo systemctl enable --now nginx

代表開機自動啟動,並且現在也啟動。

常見錯誤怎麼判斷

日誌線索可能原因
address already in useport 已被其他服務占用
permission denied檔案或目錄權限不足
no such file or directory設定檔路徑、憑證或檔案不存在
syntax error設定檔語法錯
out of memory記憶體不足,被系統終止
no space left on device磁碟空間滿了

遇到錯誤時,先把「服務名稱、錯誤時間、日誌片段、最近改過什麼」整理起來,排查會快很多。

下一步

如果你的正式網站服務反覆 failed,不要只靠重開機壓過去。可以先把 systemctl statusjournalctl -u 的重點整理好,再到 聯絡我們 取得協助。

需要 VPS 來實作?

侃瑞科技提供 VPS 方案,適合 Docker、API、開發環境與自架服務。

查看 VPS 方案 →