1. 前言
本文主要講解如何在linux系統上查看服務的運行狀態。
Linux系統提供各種系統服務(如進程管理、登錄服務、日志、計劃任務等)和網絡服務(如遠程登錄、電子郵件、打印機、web主機、數據存儲、文件傳輸、域名解析(使用DNS)、動態IP地址分配(使用DHCP)等等)。

Linux系統如何查看服務的運行狀態
從技術上講,服務是一個進程或一組進程(通常稱為守護進程),在后臺連續運行,等待請求(特別是來自客戶機的請求)。
Linux支持不同的方式來管理服務,比如啟動、停止、重啟、開機自啟動等,大多數最新的Linux發行版在使用相同的進程管理器-systemd。
systemd是Linux系統和服務管理器init進程的一個替代品,它與SysV和LSB init腳本兼容,systemctl命令是管理systemd的主要工具。
systemd的組件

systemd的組件
在本教程中,我們將演示如何查看Linux系統中systemd可管理的所有服務。
2. 如何查看Linux系統中systemd可管理的所有服務
當您不帶任何參數運行systemctl命令時,它將打印所有已加載的systemd單元的列表(請閱讀systemd文檔以獲得有關systemd單元的更多信息)。顯示各服務單元的狀態(無論是活動的還是非活動的)。
systemctl

如何查看Linux系統中systemd可管理的所有服務
列出系統上所有已加載的服務,查看它們活動狀態,是否正在運行、是否關閉、是否啟動失敗。
systemctl list-units --type=service
或者
systemctl --type=service

列出系統上所有已加載的服務,查看它們活動狀態
要列出所有已加載但已經設置開機自啟動的服務
systemctl list-units --type=service --state=active
systemctl --type=service --state=active

要列出所有已加載但已經設置開機自啟動的服務
查看所有正在運行的服務:
systemctl list-units --type=service --state=running
systemctl --type=service --state=running

查看所有正在運行的服務
如果經常使用前面的命令,可以在創建別名命令,編輯bashrc文件
vim ~/.bashrc
添加以下內容,創建別名命令running_services。
alias running_services='systemctl list-units --type=service --state=running'
保存文件并退出。使用running_services命令查看服務器上所有已加載、正在運行的服務的列表。
running_services
此外,服務的一個重要方面是它們使用的端口。要確定守護進程監聽的端口,可以使用netstat或ss工具,如下所示。
其中-l選項表示打印所有監聽的套接字,-t顯示所有TCP連接,-u顯示所有UDP連接,-n表示打印數字端口號(而不是應用程序名稱),-p表示顯示應用程序名稱。
netstat -ltup | grep sshd
或者
ss -ltup | grep sshd
第五列顯示套接字:本地地址:端口。在本例中,進程sshd正在端口22上監聽。

查看守護進程監聽的端口
此外,如果您的服務器防火墻服務運行的狀態,使用以下命令查看已經允許或者阻塞的端口或者服務

查看防火墻服務運行的狀態
firewall-cmd --list-services
firewall-cmd --list-ports
Ubuntu 用戶
sudo ufw status
3. 總結
在本教程中,我們演示了如何在Linux中查看systemd下運行的服務及這些服務的運行狀態。我們還介紹了如何檢查服務正在監聽的端口,以及如何查看在防火墻服務已經允許或者阻塞的服務和端口號。
本文已同步至博客站,尊重原創,轉載時請在正文中附帶以下鏈接:https://www.linuxrumen.com/cyml/1798.html