如何查看Linux系統服務的運行狀態?service與systemctl對比

linux系統中查看服務運行狀態常用service和systemctl兩種方式。1. service適用于老版本sysv init系統,命令為service status,調用/etc/init.d/腳本執行;2. systemctl用于現代systemd系統,命令為systemctl status ,提供更豐富的信息如啟用狀態和日志,推薦使用;3. 兩者區別在于底層系統、配置文件位置、功能支持及日志查看;4. 實際使用建議通過ps -p 1 -o comm=判斷系統類型,優先在腳本中使用systemctl is-active判斷服務狀態,注意不同發行版服務名稱差異。

如何查看Linux系統服務的運行狀態?service與systemctl對比

linux系統中查看服務運行狀態,常用的方式有兩種:service 和 systemctl。它們都能實現目標,但背后的技術和使用場景有所不同。如果你經常在不同版本的Linux系統上操作,了解這兩者的區別和用法會很有幫助。

如何查看Linux系統服務的運行狀態?service與systemctl對比


1. service 命令的基本用法

service 是比較傳統的服務管理方式,適用于采用 SysV init 系統的老版本 Linux(比如 centos 6 或更早)。

如何查看Linux系統服務的運行狀態?service與systemctl對比

查看某個服務狀態的命令格式如下:

service <服務名> status

例如:

如何查看Linux系統服務的運行狀態?service與systemctl對比

service sshd status

它會輸出該服務當前是否正在運行,以及一些基本的運行信息。

注意:service 命令本身只是一個前端工具,它會根據具體的 init 系統調用對應的腳本(通常是 /etc/init.d/ 下的腳本)來執行操作。


2. systemctl 命令的現代方式

現在大多數主流發行版(如 CentOS 7+、ubuntu 16.04+、debian 8+)都采用了 systemd 作為默認的初始化系統,推薦使用 systemctl 來管理系統服務。

查看服務狀態的標準命令是:

systemctl status <服務名>

例如:

systemctl status ssh

這個命令不僅能告訴你服務是否在運行,還會顯示服務的啟用狀態(開機是否自啟)、最近的日志條目等更多信息。

如果你想只看服務是否運行,可以用下面這個更簡潔的命令:

systemctl is-active <服務名>

輸出結果為 active 表示正在運行,inactive 表示未運行。


3. service 與 systemctl 的主要區別

特性 service systemctl
使用系統 SysV init systemd
配置文件位置 /etc/init.d/ /usr/lib/systemd/system/ 或 /etc/systemd/system/
查看服務狀態 service status systemctl status
控制服務 啟動/停止/重啟 支持更多操作(enable/disable/is-enabled 等)
日志信息 一般不直接提供日志 可結合 journalctl 查看詳細日志

簡單來說,service 更“基礎”,適合老舊系統;而 systemctl 功能更強,信息更豐富,是現代系統的標配。


4. 實際使用建議

  • 如果你不確定用哪個命令,可以先試試 ps -p 1 -o comm=,看看 PID 1 的進程是什么。如果輸出是 systemd,那應該用 systemctl。
  • 在腳本或自動化任務中,優先使用 systemctl is-active 來判斷服務狀態,因為它的輸出更穩定,便于解析。
  • 不同發行版的服務名稱可能略有差異。例如 SSH 服務,在 CentOS 中是 sshd,而在 Ubuntu 中是 ssh。注意區分。

總的來說,service 和 systemctl 都能用來查看服務狀態,關鍵在于你使用的系統類型。熟悉兩者之間的區別,可以幫助你在不同環境下快速定位問題。

基本上就這些了。

? 版權聲明
THE END
喜歡就支持一下吧
點贊13 分享