Linux系統(tǒng)如何查看服務(wù)的運(yùn)行狀態(tài)
1. 前言
本文主要講解如何在Linux系統(tǒng)上查看服務(wù)的運(yùn)行狀態(tài)。
Linux系統(tǒng)提供各種系統(tǒng)服務(wù)(如進(jìn)程管理、登錄服務(wù)、日志、計(jì)劃任務(wù)等)和網(wǎng)絡(luò)服務(wù)(如遠(yuǎn)程登錄、電子郵件、打印機(jī)、web主機(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ī)的請(qǐng)求)。
Linux支持不同的方式來管理服務(wù),比如啟動(dòng)、停止、重啟、開機(jī)自啟動(dòng)等,大多數(shù)最新的Linux發(fā)行版在使用相同的進(jìn)程管理器-systemd。
systemd是Linux系統(tǒng)和服務(wù)管理器init進(jìn)程的一個(gè)替代品,它與SysV和LSB init腳本兼容,systemctl命令是管理systemd的主要工具。
systemd的組件:
在本教程中,我們將演示如何查看Linux系統(tǒng)中systemd可管理的所有服務(wù)。
2. 如何查看Linux系統(tǒng)中systemd可管理的所有服務(wù)
當(dāng)您不帶任何參數(shù)運(yùn)行systemctl命令時(shí),它將打印所有已加載的systemd單元的列表(請(qǐng)閱讀systemd文檔以獲得有關(guān)systemd單元的更多信息)。顯示各服務(wù)單元的狀態(tài)(無論是活動(dòng)的還是非活動(dòng)的)。
- systemctl
列出系統(tǒng)上所有已加載的服務(wù),查看它們活動(dòng)狀態(tài),是否正在運(yùn)行、是否關(guān)閉、是否啟動(dòng)失敗。
- systemctl list-units --type=service
或者
- systemctl --type=service
要列出所有已加載但已經(jīng)設(shè)置開機(jī)自啟動(dòng)的服務(wù)
- systemctl list-units --type=service --state=active
- systemctl --type=service --state=active
查看所有正在運(yùn)行的服務(wù):
- systemctl list-units --type=service --state=running
- systemctl --type=service --state=running
如果經(jīng)常使用前面的命令,可以在創(chuàng)建別名命令,編輯bashrc文件
- vim ~/.bashrc
添加以下內(nèi)容,創(chuàng)建別名命令running_services。
- alias running_services='systemctl list-units --type=service --state=running'
保存文件并退出。使用running_services命令查看服務(wù)器上所有已加載、正在運(yùn)行的服務(wù)的列表。
- ss -ltup | grep sshd
- running_services
此外,服務(wù)的一個(gè)重要方面是它們使用的端口。要確定守護(hù)進(jìn)程監(jiān)聽的端口,可以使用netstat或ss工具,如下所示。
其中-l選項(xiàng)表示打印所有監(jiān)聽的套接字,-t顯示所有TCP連接,-u顯示所有UDP連接,-n表示打印數(shù)字端口號(hào)(而不是應(yīng)用程序名稱),-p表示顯示應(yīng)用程序名稱。
- netstat -ltup | grep sshd
或者
- ss -ltup | grep sshd
第五列顯示套接字:本地地址:端口。在本例中,進(jìn)程sshd正在端口22上監(jiān)聽。
此外,如果您的服務(wù)器防火墻服務(wù)運(yùn)行的狀態(tài),使用以下命令查看已經(jīng)允許或者阻塞的端口或者服務(wù)
- firewall-cmd --list-services
- firewall-cmd --list-ports
Ubuntu 用戶
- sudo ufw status
3. 總結(jié)
在本教程中,我們演示了如何在Linux中查看systemd下運(yùn)行的服務(wù)及這些服務(wù)的運(yùn)行狀態(tài)。我們還介紹了如何檢查服務(wù)正在監(jiān)聽的端口,以及如何查看在防火墻服務(wù)已經(jīng)允許或者阻塞的服務(wù)和端口號(hào)。