如何在 Ubuntu 上检查某个服务是否正在运行?

linuxoperating systemopen sourceubuntu更新于 2026/2/15 3:07:17

我们知道可以使用 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

上述命令将告诉我们您的计算机上某个服务是否正在运行。在上述命令中,我检查了 Terminal 服务是否正在运行。

输出

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

501 45775 45479 0 上午 9:31 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

相关文章


有用资源