我不知道该服务的名称,但想通过检查其状态来停止该服务。
例如,如果我想检查PostgreSQL服务是否正在运行,但我不知道该服务的名称,那么如何检查它的状态?
如果服务名称已知,我知道检查状态的命令。
我不知道该服务的名称,但想通过检查其状态来停止该服务。
例如,如果我想检查PostgreSQL服务是否正在运行,但我不知道该服务的名称,那么如何检查它的状态?
如果服务名称已知,我知道检查状态的命令。
我没有 Ubuntu 机器,但在Red Hat Linux上,您可以通过运行以下命令查看所有正在运行的服务:
service --status-all
列表中的+
表示服务正在运行,-
表示服务未运行,?
表示服务状态无法确定。
对于 Ubuntu(检查 12.04)
您可以获取所有服务的列表,并使用“grep”按颜色选择其中一项:
sudo service --status-all | grep postgres
或者,如果您知道正确的服务名称,您可以使用另一种方式:
sudo service postgresql status
也许你想要的是 ps 命令;
ps -ef
将显示所有正在运行的进程。然后,如果您知道要查找的内容,请使用 grep 进行过滤;
ps -ef | grep postgres
有一种简单的方法可以验证服务是否正在运行
systemctl status service_name
试试 PostgreSQL:
systemctl status postgresql
如果您运行以下命令,您将获得服务列表:
sudo service --status-all
要获取新贵作业的列表,请运行以下命令:
sudo initctl list
您可以使用以下命令检查所有服务的列表。
ps aux
要检查您自己的服务:
ps aux | grep postgres
最好的方法是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
跑
ps -ef | grep name-related-to-process
上面的命令将提供所有详细信息,如 pid、有关进程的开始时间。
就像如果你想要所有的 java realted 进程给 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}
查找正在运行的服务的肮脏方式。(有时它不准确,因为某些自定义脚本没有 |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...
如果您特别寻找 postgres,则有一个名为“pgrep”的特定命令,您可以在下面提到的文章 https://mydbanotebook.org/post/troubleshooting-01/中找到用法
本文提供以下详细信息: 检查 postgres 服务器是否正在运行 postgres 在哪里存储所有服务器配置 如何启动/停止 postgres
希望这会有所帮助
对于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
基于这个关于类似主题的答案https://askubuntu.com/a/58406
我更喜欢:/etc/init.d/postgres status
对于 Centos 6.10:
/sbin/service serviceNAME status
对于 Centos 7.6 和 ubuntu 18.04:
systemctl status NAME.service
适用于所有人:
service --status-all