如何检查特定服务是否在 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