如何在Ubuntu上檢查特定服務是否正在執行?


我們知道可以使用top命令列印所有在後臺執行的程序。儘管top命令用於列印當前由Linux核心管理的程序或執行緒列表,但它仍然不是檢查特定服務是否在後臺執行的便捷方法。

為了理解如何檢查特定服務是否正在執行,我們首先必須理解Linux中服務的實際含義。服務基本上是在後臺持續執行的程序或程序組。

現在我們知道了什麼是服務,接下來是瞭解我們將用來檢查特定服務是否正在執行的不同命令。

第一個命令是Linux作業系統的**ps**命令。**ps**命令是“程序狀態”的縮寫,用於列出您Linux機器上當前正在執行的程序及其PID和不同的選項。

語法

ps ef | [ - options ]

讓我們使用兩個示例,首先我們將列印在您的Ubuntu機器上執行的所有程序,接下來我們將列印特定服務是否正在執行。

命令

ps ef

輸出

UID   PID   PPID   C STIME   TTY   TIME CMD
 0     1     0 0 25Jun21 ??      19:53.44 /sbin/launchd
 0    56     1 0 25Jun21 ??       0:41.68 /usr/sbin/syslogd
 0    57     1 0 25Jun21 ??       0:59.28 /usr/libexec/UserEventAgent (System)

以上命令的輸出非常龐大,所以我只列印了一部分,需要注意的是輸出可能會有所不同。

命令

ps -ef | grep Terminal

以上命令將告訴我們特定服務是否在您的機器上執行。在上面的命令中,我正在檢查終端服務是否正在執行。

輸出

501 28604 1 0 Sun12PM ?? 2:43.95
/System/Applications/Utilities/Terminal.app/Contents/MacOS/Terminal

501 45775 45479 0 9:31AM ttys000 0:00.01 grep Terminal

只有當您看到上面輸出的CMD列中填入了命令時,才能確認該服務實際上正在執行。

另一種檢查服務是否正在執行的方法是在上述命令中使用**aux**命令代替**-ef**標誌。

命令

ps aux | grep Terminal

輸出

immukul@192 linux-questions-code % ps aux | grep Terminal
immukul 28604 3.3 0.7 5429432 57080 ?? S Sun12PM 2:46.14
/System/Applications/Utilities/Terminal.app/Contents/MacOS/Terminal

immukul 45869 0.0 0.0 4268300 520 s000 R+ 9:44AM 0:00.00 grep
Terminal

更新於:2021年7月29日

3K+ 次瀏覽

開啟你的職業生涯

完成課程獲得認證

開始學習
廣告