簡體   English   中英

如何檢查特定服務是否在 Ubuntu 上運行

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

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM