>
目錄
- 在 Linux 中列出 SystemD 下正在運(yùn)行的服務(wù)
Linux系統(tǒng)提供多種系統(tǒng)服務(wù)(如進(jìn)程管理、登錄、syslog、cron等)和網(wǎng)絡(luò)服務(wù)(如遠(yuǎn)程登錄、電子郵件、打印機(jī)、虛擬主機(jī)、數(shù)據(jù)存儲、文件傳輸、域名解析等) (使用 DNS)、動態(tài) IP 地址分配(使用 DHCP)等等)。
從技術(shù)上講,服務(wù)是一個進(jìn)程或一組進(jìn)程(通常稱為守護(hù)進(jìn)程)在后臺持續(xù)運(yùn)行,等待請求進(jìn)入(尤其是來自客戶端的請求)。
Linux 支持不同的方式來管理(啟動、停止、重新啟動、在系統(tǒng)啟動時啟用自動啟動等)服務(wù),通常是通過進(jìn)程或服務(wù)管理器。大多數(shù)(如果不是全部)現(xiàn)代 Linux 發(fā)行版現(xiàn)在都使用相同的進(jìn)程管理器:systemd。
Systemd 是 Linux 的系統(tǒng)和服務(wù)管理器; init 進(jìn)程的替代品,與 SysV 和 LSB init 腳本兼容,systemctl 命令是管理 systemd 的主要工具。
在本文中,我們將演示如何在 Linux 中列出 systemd 下所有正在運(yùn)行的服務(wù)。
在 Linux 中列出 SystemD 下正在運(yùn)行的服務(wù)
當(dāng)您運(yùn)行不帶任何參數(shù)的 systemctl 命令時,它將顯示所有加載的 systemd 單元的列表(閱讀 systemd 文檔以獲取有關(guān) systemd 單元的更多信息),包括服務(wù),顯示它們的狀態(tài)(無論是否處于活動狀態(tài))。
systemctl
要列出系統(tǒng)上所有已加載的服務(wù)(無論是活動的、正在運(yùn)行的、退出的還是失敗的,請使用 list-units 子命令和帶有服務(wù)值的 –type 開關(guān)。
# systemctl list-units --type=service OR # systemctl --type=service
要列出所有已加載但處于活動狀態(tài)的服務(wù),包括正在運(yùn)行的和已退出的服務(wù),您可以添加值為 active 的 –state 選項,如下所示。
# systemctl list-units --type=service --state=active OR # systemctl --type=service --state=active
但要快速瀏覽所有正在運(yùn)行的服務(wù)(即所有已加載和正在運(yùn)行的服務(wù)),請運(yùn)行以下命令。
# systemctl list-units --type=service --state=running OR # systemctl --type=service --state=running
如果您經(jīng)常使用前面的命令,您可以如圖所示在 ~/.bashrc 文件中創(chuàng)建一個別名命令,以便輕松調(diào)用它。
vim ~/.bashrc
然后在別名列表下添加以下行,如屏幕截圖所示。
alias running_services='systemctl list-units --type=service --state=running'
保存文件中的更改并關(guān)閉它。從現(xiàn)在開始,使用“running_services”命令查看服務(wù)器上所有已加載、正在運(yùn)行的服務(wù)的列表。
# running_services #use the Tab completion
此外,服務(wù)的一個重要方面是它們使用的端口。要確定守護(hù)進(jìn)程正在偵聽的端口,您可以使用 netstat 或 ss 命令,如圖所示。
其中標(biāo)志 -l 表示打印所有偵聽套接字,-t 顯示所有 TCP 連接,-u 顯示所有 UDP 連接,-n 表示打印數(shù)字端口號(而不是應(yīng)用程序名稱),-p 表示顯示應(yīng)用程序名稱。
# netstat -ltup | grep zabbix_agentd OR # ss -ltup | grep zabbix_agentd
第五列顯示套接字:Local Address:Port。在這種情況下,進(jìn)程 zabbix_agentd 正在偵聽端口 10050。
此外,如果您的服務(wù)器正在運(yùn)行防火墻服務(wù),該服務(wù)控制如何阻止或允許進(jìn)出所選服務(wù)或端口的流量,您可以使用 firewall-cmd 或 ufw 命令列出已在防火墻中打開的服務(wù)或端口(取決于您使用的 Linux 發(fā)行版),如圖所示。
# firewall-cmd --list-services [FirewallD] # firewall-cmd --list-ports $ sudo ufw status [UFW Firewall]
目前為止就這樣了!在本指南中,我們演示了如何在 Linux 中查看 systemd 下正在運(yùn)行的服務(wù)。我們還介紹了如何檢查正在偵聽的端口服務(wù)以及如何查看在系統(tǒng)防火墻中打開的服務(wù)或端口。
>