Linux 系統(tǒng)服務(wù)有時也稱為守護(hù)程序,是在Linux
啟動時自動加載并在Linux
退出時自動停止的系統(tǒng)任務(wù)。
在本文中將為大家介紹如何列出 Linux
系統(tǒng)里所有運(yùn)行的服務(wù),以及如何檢查某個服務(wù)的當(dāng)前狀態(tài)。
Centos/RHEL 7.X 的 systemd 系統(tǒng)服務(wù)查看
CentOS 7.x
開始,CentOS
開始使用 systemd
服務(wù)來代替 daemon
,原來管理系統(tǒng)啟動和管理系統(tǒng)服務(wù)的相關(guān)命令全部由 systemctl
命令來代替。
systemctl list-unit-files
命令的輸出結(jié)果如下:
查看所有運(yùn)行著的 systemd
服務(wù)可以運(yùn)行以下命令:
systemctl | more
命令的輸出結(jié)果如下:
除此之外,你還可以使用以下命令:
systemctl list-units --type service
命令的輸出結(jié)果如下:
如果你想要在結(jié)果里搜索某個特定的服務(wù),可以使用管道及 grep
命令。
systemctl | grep "apache2"
命令的輸出結(jié)果如下:
使用 netstat 命令查看系統(tǒng)服務(wù)
Netstat
命令是用來檢查活動的網(wǎng)絡(luò)連接、接口統(tǒng)計分析,以及路由表狀態(tài)。這個命令在所有的 Linux
發(fā)行版都可用,我們接下來就用它來查看系統(tǒng)服務(wù)。
查看服務(wù)及它們所監(jiān)聽的端口:
netstat -pnltu
命令的輸出結(jié)果如下:
通過系統(tǒng)服務(wù)配置文件查看系統(tǒng)服務(wù)
服務(wù)的配置文件是 /etc/services
是一個 ASCII
文件,它包含了一系列的用戶程序可能用到的服務(wù)。在這個文件里,包括了服務(wù)名稱,端口號,所使用的協(xié)議,以及一些別名。
對于這個文件,我們可以使用任意的文本工具查看,比如vim
:
vim /etc/services
命令的輸出結(jié)果如下:
查看 systemd 服務(wù)狀態(tài)
在一些新版的 Linux
系統(tǒng),已經(jīng)有些用 systemd
來取代 init
進(jìn)程了。在這種系統(tǒng)里,如何去查看系統(tǒng)服務(wù)呢?我們可以使用以下語法:
systemctl status service_name
比如說,查看你系統(tǒng)上的 OpenSSH
是否在運(yùn)行,可以運(yùn)行:
systemctl status sshd
命令的輸出結(jié)果如下:
或者,你也可以使用以下命令格式去查看某個服務(wù)是否正在運(yùn)行:
systemctl is-active service_name
如果使用這條命令的話,實(shí)現(xiàn)上面那個例子對應(yīng)的命令為:
systemctl is-active sshd
命令的輸出結(jié)果如下:
同時,你也可以查看一個服務(wù)是否已經(jīng)被使能了,可以使用以下命令:
systemctl is-enabled service_name
比如,檢查 OpenSSH
服務(wù)是否已經(jīng)使能,可能輸入以下命令:
systemctl is-enabled sshd
命令的輸出結(jié)果如下:
早期版本的服務(wù)狀態(tài)查看
其實(shí)也不能說早期,現(xiàn)在依然還有很多這樣的系統(tǒng),上面跑著 SysV init
進(jìn)程。對于這種系統(tǒng),查看服務(wù)狀態(tài)的命令為:
service service_name status
還是查看 OpenSSH
狀態(tài)的例子,對應(yīng)的命令為:
service sshd status
命令的輸出結(jié)果如下:
你也可以使用以下命令來查看所有的服務(wù)狀態(tài):
chkconfig --list
命令的輸出結(jié)果如下:
以上就是查看Linux
系統(tǒng)服務(wù)的 5 大方法了。希望對大家有所幫助,對Linux
有興趣的同學(xué)可以看一下教程
Linux教程:http://hgci.cn/linux/
Linux微課:http://hgci.cn/minicourse/play/linuxcourse
Linux就該這么學(xué):http://hgci.cn/linuxprobe/