[英]How to check if a particular service is running on Ubuntu
我不知道該服務的名稱,但想通過檢查其狀態來停止該服務。
例如,如果我想檢查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 是一個有用的工具,可以使用它的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 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...
對於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
Centos 6.10 : /sbin/service serviceNAME status
Centos 7.6 和 ubuntu 18.04: systemctl status NAME.service
適用於所有人: service --status-all
基於這個關於類似主題的答案https://askubuntu.com/a/58406
我更喜歡: /etc/init.d/postgres status
如果您特別尋找 postgres,則有一個名為“pgrep”的特定命令,您可以在下面提到的文章https://mydbanotebook.org/post/troubleshooting-01/ 中找到用法
本文提供了以下詳細信息: 檢查 postgres 服務器是否正在運行 postgres 在哪里存儲所有服務器配置 如何啟動/停止 postgres
希望這是有幫助的
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.