在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ù)存儲(chǔ)、文件傳輸、域名解析等) (使用 DNS)、動(dòng)態(tài) IP 地址分配(使用 DHCP)等等)。
從技術(shù)上講,服務(wù)是一個(gè)進(jìn)程或一組進(jìn)程(通常稱為守護(hù)進(jìn)程)在后臺(tái)持續(xù)運(yùn)行,等待請(qǐng)求進(jìn)入(尤其是來自客戶端的請(qǐng)求)。
Linux 支持不同的方式來管理(啟動(dòng)、停止、重新啟動(dòng)、在系統(tǒng)啟動(dòng)時(shí)啟用自動(dòng)啟動(dò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 命令時(shí),它將顯示所有加載的 systemd 單元的列表(閱讀 systemd 文檔以獲取有關(guān) systemd 單元的更多信息),包括服務(wù),顯示它們的狀態(tài)(無論是否處于活動(dòng)狀態(tài))。
systemctl要列出系統(tǒng)上所有已加載的服務(wù)(無論是活動(dòng)的、正在運(yùn)行的、退出的還是失敗的,請(qǐng)使用 list-units 子命令和帶有服務(wù)值的 --type 開關(guān)。
# systemctl list-units --type=serviceOR# systemctl --type=service要列出所有已加載但處于活動(dòng)狀態(tài)的服務(wù),包括正在運(yùn)行的和已退出的服務(wù),您可以添加值為 active 的 --state 選項(xiàng),如下所示。
# systemctl list-units --type=service --state=activeOR# systemctl --type=service --state=active但要快速瀏覽所有正在運(yùn)行的服務(wù)(即所有已加載和正在運(yùn)行的服務(wù)),請(qǐng)運(yùn)行以下命令。
# systemctl list-units --type=service --state=running OR# systemctl --type=service --state=running如果您經(jīng)常使用前面的命令,您可以如圖所示在 ~/.bashrc 文件中創(chuàng)建一個(gè)別名命令,以便輕松調(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ù)的一個(gè)重要方面是它們使用的端口。要確定守護(hù)進(jìn)程正在偵聽的端口,您可以使用 netstat 或 ss 命令,如圖所示。
其中標(biāo)志 -l 表示打印所有偵聽套接字,-t 顯示所有 TCP 連接,-u 顯示所有 UDP 連接,-n 表示打印數(shù)字端口號(hào)(而不是應(yīng)用程序名稱),-p 表示顯示應(yīng)用程序名稱。
# netstat -ltup | grep zabbix_agentdOR# 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ù)或端口。
到此這篇關(guān)于在Linux中列出Systemd下所有正在運(yùn)行的服務(wù)的方法指南的文章就介紹到這了,更多相關(guān)Linux Systemd服務(wù)內(nèi)容請(qǐng)搜索好吧啦網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持好吧啦網(wǎng)!
