檢視 Linux 系統服務的 5 大方法
阿新 • • 發佈:2020-08-03
Linux 系統服務有時也稱為守護程式,是在Linux啟動時自動載入並在Linux退出時自動停止的系統任務。
在本文中,良許將為大家介紹如何列出 Linux 系統裡所有執行的服務,以及如何檢查某個服務的當前狀態。
#### Centos/RHEL 7.X 的 systemd 系統服務檢視
CentOS 7.x開始,CentOS開始使用 systemd 服務來代替 daemon ,原來管理系統啟動和管理系統服務的相關命令全部由 systemctl 命令來代替。
```
systemctl list-unit-files
```
命令的輸出結果如下:
![](https://i.loli.net/2019/03/24/5c96cfea61dd4.png)
檢視所有執行著的 systemd 服務可以執行以下命令:
````
systemctl | more
````
命令的輸出結果如下:
![](https://i.loli.net/2019/03/24/5c96d06ee5b07.png)
除此之外,你還可以使用以下命令:
```
systemctl list-units --type service
```
命令的輸出結果如下:
![](https://i.loli.net/2019/03/24/5c96d0ab68509.png)
如果你想要在結果裡搜尋某個特定的服務,可以使用管道及 grep 命令。
```
systemctl | grep "apache2"
```
命令的輸出結果如下:
![](https://i.loli.net/2019/03/24/5c96d11234578.png)
#### 使用 netstat 命令檢視系統服務
Netstat 命令是用來檢查活動的網路連線、介面統計分析,以及路由表狀態。這個命令在所有的 Linux 發行版都可用,我們接下來就用它來檢視系統服務。
檢視服務及它們所監聽的埠:
````
netstat -pnltu
````
命令的輸出結果如下:
![](https://i.loli.net/2019/03/24/5c96d31c7f5d5.png)
#### 通過系統服務配置檔案檢視系統服務
服務的配置檔案是 `/etc/services` 是一個 ASCII 檔案,它包含了一系列的使用者程式可能用到的服務。在這個檔案裡,包括了服務名稱,埠號,所使用的協議,以及一些別名。
對於這個檔案,我們可以使用任意的文字工具檢視,比如 vim :
```
vim /etc/services
```
命令的輸出結果如下:
![](https://i.loli.net/2019/03/24/5c96ee7d081c5.png)
#### 檢視 systemd 服務狀態
在一些新版的 Linux 系統,已經有些用 systemd 來取代 init 程序了。在這種系統裡,如何去檢視系統服務呢?我們可以使用以下語法:
````
systemctl status service_name
````
比如說,檢視你係統上的 OpenSSH 是否在執行,可以執行:
````
systemctl status sshd
````
命令的輸出結果如下:
![](https://i.loli.net/2019/03/24/5c96f12e46724.png)
或者,你也可以使用以下命令格式去檢視某個服務是否正在執行:
```
systemctl is-active service_name
```
如果使用這條命令的話,實現上面那個例子對應的命令為:
```
systemctl is-active sshd
```
命令的輸出結果如下:
![](https://i.loli.net/2019/03/24/5c96f2054de5e.png)
同時,你也可以檢視一個服務是否已經被使能了,可以使用以下命令:
```
systemctl is-enabled service_name
```
比如,檢查 OpenSSH 服務是否已經使能,可能輸入以下命令:
```
systemctl is-enabled sshd
```
命令的輸出結果如下:
![](https://i.loli.net/2019/03/24/5c96f2dfe6267.png)
#### 早期版本的服務狀態檢視
其實也不能說早期,現在依然還有很多這樣的系統,上面跑著 SysV init 程序。對於這種系統,檢視服務狀態的命令為:
```
service service_name status
```
還是檢視 OpenSSH 狀態的例子,對應的命令為:
```
service sshd status
```
命令的輸出結果如下:
![](https://i.loli.net/2019/03/24/5c96f4e050fde.png)
你也可以使用以下命令來檢視所有的服務狀態:
```
chkconfig --list
```
命令的輸出結果如下:
![](https://i.loli.net/2019/03/24/5c96f536314