我不知道服务的名称,但想通过检查其状态来停止服务。

例如,如果我想检查PostgreSQL服务是否正在运行,但我不知道服务的名称,那么我该如何检查它的状态?

如果知道服务名,我知道检查状态的命令。


当前回答

run

Ps -ef | grep名称与进程相关

上面的命令将给出有关进程的所有细节,如pid,开始时间。

如果你想要所有与Java相关的进程,就给Java 或者,如果你有进程名,就写上进程名

其他回答

最好的方法是在终端中使用nmap工具。 nmap是一个有用的工具,它可以分析一个up系统,使用它的IP地址,然后显示所有激活的网络服务。

打开终端和使用本例:

~$ nmap 192.168.1.3/24

Starting Nmap 5.21 ( http://nmap.org ) at 2016-05-16 22:49 IRDT
Nmap scan report for 192.168.1.3
Host is up (0.00020s latency).
Not shown: 994 closed ports
PORT     STATE SERVICE
22/tcp   open  ssh
23/tcp   open  telnet
139/tcp  open  netbios-ssn
445/tcp  open  microsoft-ds
3389/tcp open  ms-term-serv
3689/tcp open  rendezvous

我没有Ubuntu的盒子,但在Red Hat Linux上,你可以通过运行以下命令查看所有正在运行的服务:

service --status-all

列表中的“+”表示服务正在运行,“-”表示服务未运行,?表示无法确定服务状态。

run

Ps -ef | grep名称与进程相关

上面的命令将给出有关进程的所有细节,如pid,开始时间。

如果你想要所有与Java相关的进程,就给Java 或者,如果你有进程名,就写上进程名

有一种简单的方法可以验证服务是否正在运行

systemctl status service_name

试试PostgreSQL:

systemctl status postgresql

也许你想要的是ps命令;

ps -ef

将显示所有正在运行的进程。然后,如果你知道你要找什么,使用grep进行筛选;

ps -ef | grep postgres