Linux系統提供各種系統服務(如進程管理、登錄、syslog、cron等)和網絡服務(如遠程登錄、電子郵件、打印機、Web主機、數據存儲、文件傳輸、域名解析(使用DNS)、動態IP地址分配(使用DHCP)等等)。從技術上講,服務是一個或一組進程(通常稱為守護進程)在后台連續運行,等待請求(特別是來自客戶機的請求)。Linux支持不同的方法來管理服務(啟動、停止、重啟、在系統啟動時的自動啟動等),通常通過流程或服務管理器。 大多數現代Linux發行版現在使用相同的進程管理器:systemd。Systemd是Linux的系統和服務管理器; init進程的替代品,與SysV和LSB init腳本兼容,systemctl命令是管理systemd的主要工具。在本指南中,我們將演示如何在Linux下列出systemd下所有正在運行的服務。在Linux SystemD下列出正在運行的服務當您運行沒有任何參數的systemctl命令時,它將顯示所有已加載的systemd單元(有關systemd單元的更多信息,請閱讀systemd文檔)的列表,包括服務,並顯示它們的狀態(是否處於活動狀態)
systemct
要列出系統上所有已加載的服務(無論是活動的,運行的,退出的還是失敗的,請使用 list-units子命令和--type開關,其值為service。
systemctl list-units --type=service
或者
systemctl --type=service
要列出所有已加載但處於活動狀態的服務,包括正在運行的服務和已退出的服務,可以添加--state選項,其值為active,如下所示。
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
添加下面的內容 alias running_services='systemctl list-units --type=service --state=running'
重新加載一下這個文件,能夠立即生效
source .bashrc
要確定守護程序進程正在偵聽的端口,可以使用netstat或ss工具,如圖所示。其中標志-l表示打印所有偵聽套接字,-t顯示所有TCP連接,-u表示所有UDP連接,-n表示打印數字端口號(而不是應用程序名稱),-p表示顯示應用程序名稱。
netstat -ltup | grep mysqld.service
或者 ss -ltup | grep zabbix_agentd
第五列顯示套接字:本地地址:端口。 在這種情況下,進程zabbix_agentd正在偵聽端口10050。此外,如果您的服務器運行防火牆服務,該服務控制如何阻止或允許來自或來自所選服務或端口的流量,您可以使用firewall-cmd或ufw命令列出已在防火牆中打開的服務或端口( 取決於您正在使用的Linux發行版),如下所示。
firewall-cmd --list-services [FirewallD] firewall-cmd --list-ports sudo ufw status [UFW Firewall]
總結目前為止就這樣了! 在本指南中,我們演示了如何在Linux下查看systemd下的運行服務。 我們還介紹了如何檢查服務正在偵聽的端口以及如何查看在系統防火牆中打開的服務或端口。
原文地址:https://mp.weixin.qq.com/s/OzZ2hLTRM5zsT-p6WlVWdA