Ubuntuで特定のサービスが実行されているかどうかを確認する方法


253

サービスの名前はわかりませんが、ステータスを確認してサービスを停止したいと思います。

たとえば、PostgreSQLサービスが実行されているかどうかを確認したいが、サービスの名前がわからない場合、どうすればそのステータスを確認できますか?

サービス名がわかっている場合、ステータスを確認するコマンドを知っています。


1
それで、名前がわからない場合、それが正しいサービスであることをどのようにして知るのでしょうか。/etc/init.d/に、キーワードpostgresを含む名前でたくさんのinitスクリプトを追加できます(ただし、これは無意味です!)、停止するサービスであることをどのようにして知ることができますか?Plzがあなたの文脈にいくつかの説明を追加
Stefan

1
@Stefan私はLinuxコマンドに慣れていないので、正しいサービス名がわからないが、サービス名の一部または同様の名前を部分的に使用しているかどうかを知りたい
abcd

1
サービスリストまたはps -efを使用して、出力を解析できます。とにかく、これはあなたが停止すべきサービスであると思う確かではないサービスを停止するのは良い考えではないと思います。したがって、停止したいマシンで実行されている実際のサービス名のリストを作成する必要があります。postgres、mysql、httpなどの「標準」サービスのみを停止することを検討している場合は、サービス名を簡単に見つけることができます。
ステファン

:askubuntuグループチェックaskubuntu.com/questions/407075/...
svassr

回答:


438

Ubuntuのボックスはありませんが、Red Hat Linuxでは、次のコマンドを実行することで、実行中のすべてのサービスを確認できます。

service --status-all

リストで、+はサービスが実行中であること、サービスは実行中で-ない?こと、サービスの状態を判別できないことを示します。


3
ありがとう。ドキュメントには、各サービスの横にある記号の意味が記載されていません。「+」は実行中であることを意味し、「-」は実行されていないことを推測します...次に「?」があります 多くの隣。+は実行を意味しますか?
オスカー

89
"+"開始 "-"停止 "?" 不明な ソース
gkiko

redhat(centos)でこれを行う方法
PolarisUser

14
サービスが1つでマークされている理由の任意のアイデア[-] {name}が、sudo service {name} statusランニングなどのショー?
Mark Murphy

6
sudo initctl list後で@linuxnewbeeが言及するように、実行することもできます。
svassr

79

Ubuntuの場合(12.04で確認済み)

すべてのサービスのリストを取得し、「grep」を使用してそれらの1つを色で選択できます。

sudo service --status-all | grep postgres

または、正しいサービス名がわかっている場合は、別の方法を使用することもできます。

sudo service postgresql status

4
grepが効果を発揮しないようです(Ubuntu 12.04も使用しています)。
notapatch 14年

2
グレップへの正しい方法は次のとおりです。sudo service --status-all 2>&1 | grep postgres
アダムChwedyk

sudo service x statusActive: inactive (dead)実行中のサービスについてのレポートは、Ubuntu 15.04(Vivid)
Dinei

39

多分あなたが望むのはpsコマンドです。

ps -ef

実行中のすべてのプロセスが表示されます。次に、探しているものがわかっている場合は、grepを使用してフィルタリングします。

ps -ef | grep postgres

2
プロセス名がサービス名と異なる場合があります。
Francisco Quintero

おそらく良いですpgrep -a postgres。これにより、迷惑なものも回避できgrep --color=auto needleます。
Pablo A


16

サービスが実行されているかどうかを確認する簡単な方法があります

systemctl status service_name

PostgreSQLを試す:

systemctl status postgresql


2

最善の方法は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

1
これが機能するのは、明らかにネットワークサービスの場合のみです。
Molomby 2017

2

走る

ps -ef | プロセスに関連するgrep

上記のコマンドは、pid、プロセスの開始時間などのすべての詳細を提供します。

あなたがすべてのJava関連のプロセスがJavaを与えることを望む場合、またはあなたがプロセスの名前を持っている場合の名前のように


これは、サービス名が8文字以下になるまで機能します。それ以外の場合、リストは切り捨てられます。
Tomas Kubes

0

実行中のサービスを見つけるための汚い方法。(一部のカスタムスクリプトには| 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...

0

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

0

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

serviceを直接呼び出す代わりにsystemctlを使用できます。

systemctl status/start/stop {service_name}

0

Centos 6.10の場合: /sbin/service serviceNAME status

Centos 7.6およびubuntu 18.04の場合: systemctl status NAME.service

それらすべてのために働く: service --status-all


弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.