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

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

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


当前回答

在linux操作系统中查询某项服务的状态。

//in case of super user(admin) requires    
sudo service {service_name} status 
// in case of normal user
service {service_name} status 

停止或启动服务

// in case of admin requires
sudo service {service_name} start/stop
// in case of normal user
service {service_name} start/stop 

获取所有服务和PID的列表:

sudo service --status-all

你可以使用systemctl代替直接调用service:

systemctl status/start/stop {service_name}

其他回答

如果你特别寻找postgres有一个特殊的命令叫做pgrep 你可以在下面的文章中找到它的用法 https://mydbanotebook.org/post/troubleshooting-01/

本文提供了以下细节: 检查postgres服务器是否正在运行 postgres在哪里存储所有的服务器配置 如何启动/停止postgres

希望这对大家有帮助

适用于Ubuntu(已检查12.04)

你可以得到所有服务的列表,用'grep'按颜色选择其中一个:

sudo service --status-all | grep postgres

如果你知道正确的服务名称,你可以使用另一种方法:

sudo service postgresql status

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

service --status-all

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

也许你想要的是ps命令;

ps -ef

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

ps -ef | grep postgres

基于类似主题的回答https://askubuntu.com/a/58406我更喜欢:/etc/init.d / postgres状态