如何检查一个我不知道名字的服务正在Ubuntu上运行

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

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

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

602042 次浏览

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

service --status-all

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

也许你想要的是ps命令;

ps -ef

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

ps -ef | grep postgres

如果你运行下面的命令,你会得到一个服务列表:

sudo service --status-all

获取upstart任务列表:

sudo initctl list

适用于Ubuntu(已检查12.04)

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

sudo service --status-all | grep postgres

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

sudo service postgresql status

您可以使用以下命令查看所有服务的列表。

ps aux

检查您自己的服务:

ps aux | grep postgres

查找正在运行的服务的肮脏方法。(有时它是不准确的,因为一些自定义脚本没有|状态|选项)

[root@server ~]# for qw in `ls /etc/init.d/*`; do  $qw status | grep -i running; done
auditd (pid  1089) is running...
crond (pid  1296) is running...
fail2ban-server (pid  1309) is running...
httpd (pid  7895) is running...
messagebus (pid  1145) is running...
mysqld (pid  1994) is running...
master (pid  1272) is running...
radiusd (pid  1712) is running...
redis-server (pid  1133) is running...
rsyslogd (pid  1109) is running...
openssh-daemon (pid  7040) is running...

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

systemctl status service_name

试试PostgreSQL:

systemctl status postgresql
最好的方法是在终端中使用nmap工具。 nmap是一个分析up系统的有用工具,使用它的IP Address,然后显示所有激活的网络services.

打开terminal并使用这个例子:

~$ 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

对于centos,下面的命令对我有用(:

locate postgres | grep service

输出:

/usr/lib/firewalld/services/postgresql.xml

/usr/lib/systemd/system/postgresql-9.3.service

sudo systemctl status postgresql-9.3.service

运行

Ps -ef | grep name-related-to-process

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

如果你想要所有Java相关的进程给Java 或者如果您有进程名,则将名称放置为

在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}
Centos 6.10

: /sbin/service serviceNAME status < / p >

Centos 7.6和ubuntu 18.04: systemctl status NAME.service < / p >

适用于所有这些: service --status-all < / p >

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

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

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

希望这对大家有帮助