如何在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
广告