ChatGPT解决这个技术问题 Extra ChatGPT

如何检查我不知道名称的服务是否在 Ubuntu 上运行

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

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

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

那么,如果您不知道它的名称,您怎么知道它是正确的服务呢?我可以在 /etc/init.d/ 中添加大量初始化脚本,其名称包含关键字 postgres(尽管这毫无意义!),你怎么知道它是你想要停止的服务?请为您的上下文添加一些解释
@Stefan,因为我是 linux 命令的新手,我想知道我是否不知道正确的服务名称,但部分使用服务名称的一部分或类似名称,我能找到相同的吗
您可以使用服务列表或 ps -ef 并解析输出。无论如何,我认为停止您认为应该停止但不确定的服务并不是一个好主意。因此,您应该列出要停止的机器上运行的真实服务名称。如果你考虑只停止像 postgres、mysql、http 这样的“标准”服务,你可以很容易地找到服务名称。
检查 askubuntu 组:askubuntu.com/questions/407075/…

L
Lando

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

service --status-all

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


谢谢。文档没有说明每个服务旁边的符号是什么意思。我猜“+”表示它正在运行,“-”表示它没有......然后是“?”旁边很多。 + 表示运行?
“+”开始“-”停止“?”未知source
我将如何在 redhat (centos) 上执行此操作
知道为什么一项服务标有 [-] {name}sudo service {name} status 显示为正在运行吗?
您可能还想运行 sudo initctl list,正如@linuxnewbee 后面提到的那样。
z
zhecsan

对于 Ubuntu(检查 12.04)

您可以获取所有服务的列表,并使用“grep”按颜色选择其中一项:

sudo service --status-all | grep postgres

或者,如果您知道正确的服务名称,您可以使用另一种方式:

sudo service postgresql status

我没有看到 grep 有任何效果(也使用 Ubuntu 12.04)。
grep 的正确方法是:sudo service --status-all 2>&1 | grep postgres
sudo service x status 在此处报告 Active: inactive (dead) 正在运行的服务 Ubuntu 15.04 (Vivid)
M
Mike Makuch

也许你想要的是 ps 命令;

ps -ef

将显示所有正在运行的进程。然后,如果您知道要查找的内容,请使用 grep 进行过滤;

ps -ef | grep postgres

有时进程名称与服务名称不同。
可能更好的是pgrep -a postgres。这也避免了那些烦人的grep --color=auto needle
H
Henry

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

systemctl status service_name

试试 PostgreSQL:

systemctl status postgresql

P
Peter Mortensen

如果您运行以下命令,您将获得服务列表:

sudo service --status-all

要获取新贵作业的列表,请运行以下命令:

sudo initctl list

@Ajay 那是因为 Ubuntu switched from upstart to systemd on 16.10。要获得整个列表,我会使用 systemctl --full --type service --all
P
Peter Mortensen

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

ps aux 

要检查您自己的服务:

ps aux | grep postgres

这与 above answer 相同
B
BattleTested_закалённый в бою

最好的方法是在终端中使用 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

显然,这只适用于网络服务。
I
Inder malviya

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

上面的命令将提供所有详细信息,如 pid、有关进程的开始时间。

就像如果你想要所有的 java realted 进程给 java 或者如果你有进程的名称放置名称


这一直有效,直到服务名称为 8 个字符或更少。否则,列表将被截断。
Y
YAP

要检查 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}

S
Satish

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

[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...

W
Walk

对于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

P
Panagiotis Simakis

对于 Centos 6.10:/sbin/service serviceNAME status

对于 Centos 7.6 和 ubuntu 18.04:systemctl status NAME.service

适用于所有人:service --status-all


t
tschomacker

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


S
Shivachandra

如果您特别在寻找 postgres,有一个名为“pgrep”的特定命令,您可以在下面提到的文章 https://mydbanotebook.org/post/troubleshooting-01/ 中找到用法

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

希望这会有所帮助