我不知道该服务的名称,但是想通过检查其状态来停止该服务。
例如,如果我想检查PostgreSQL服务是否正在运行,但是我不知道该服务的名称,那么我如何检查它的状态?
我知道用于检查服务名称是否已知的状态的命令。
我不知道该服务的名称,但是想通过检查其状态来停止该服务。
例如,如果我想检查PostgreSQL服务是否正在运行,但是我不知道该服务的名称,那么我如何检查它的状态?
我知道用于检查服务名称是否已知的状态的命令。
Answers:
我没有Ubuntu盒子,但是在Red Hat Linux上,您可以通过运行以下命令来查看所有正在运行的服务:
service --status-all
在列表上,+
指示服务正在运行,-
指示服务未运行,?
指示服务状态无法确定。
[-] {name}
但sudo service {name} status
显示为正在运行吗?
sudo initctl list
,如后文@linuxnewbee所述。
对于Ubuntu(已检查12.04)
您可以获取所有服务的列表,并使用'grep'颜色选择其中一项:
sudo service --status-all | grep postgres
或者,如果您知道正确的服务名称,则可以使用另一种方法:
sudo service postgresql status
sudo service --status-all 2>&1 | grep postgres
sudo service x status
Active: inactive (dead)
在此处报告正在运行的服务,Ubuntu 15.04(生动)
也许您想要的是ps命令;
ps -ef
将向您显示所有正在运行的进程。然后,如果您对要查找的内容有所了解,请使用grep进行过滤;
ps -ef | grep postgres
pgrep -a postgres
。这样也避免了那些烦人grep --color=auto needle
。
如果运行以下命令,您将获得服务列表:
sudo service --status-all
要获取新贵作业的列表,请运行以下命令:
sudo initctl list
systemctl --full --type service --all
您可以使用以下命令检查所有服务的列表。
ps aux
要检查您自己的服务:
ps aux | grep postgres
最好的方法是使用 nmap
在终端中工具。nmap是一个有用的工具,可以使用它分析启动系统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 名称与进程相关
上面的命令将提供pid之类的所有详细信息,有关该过程的开始时间。
例如,如果您希望所有Java实作的进程都给Java,或者如果您有进程名称,请输入
查找正在运行的服务的肮脏方式。(有时是不准确的,因为某些自定义脚本没有| 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...
要检查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}
基于类似主题https://askubuntu.com/a/58406的 答案,
我更喜欢:/etc/init.d/postgres status