Ubuntu'da belirli bir hizmetin çalışıp çalışmadığını kontrol etme


253

Hizmetin adını bilmiyorum, ancak durumunu kontrol ederek hizmeti durdurmak istiyorum.

Örneğin, PostgreSQL hizmetinin çalışıp çalışmadığını kontrol etmek istiyorum , ancak hizmetin adını bilmiyorum, o zaman durumunu nasıl kontrol edebilirim?

Hizmet adı biliniyorsa durumu kontrol etme komutunu biliyorum.


1
Peki adını bilmiyorsanız doğru hizmet olduğunu nasıl anlarsınız? Anahtar kelimeler postgres içeren adları ile /etc/init.d/ için bol miktarda init komut dosyaları ekleyebilirim (bu anlamsız olurdu!) Ve nasıl durdurmak istediğiniz hizmet olduğunu nasıl bilebilirsiniz? Plz bağlamınız için biraz açıklama ekleyin
Stefan

1
@Stefan linux komutlarında yeniyim Doğru hizmet adını bilmiyorum, ancak hizmet adının bir kısmını veya benzer adın bir kısmını kullanarak aynı şeyi bulabilir miyim bilmek istiyorum
abcd

1
Hizmet listelerini veya ps -ef komutunu kullanabilir ve çıktıları ayrıştırabilirsiniz. Her neyse, bunun durduracağınız ama emin olmadığınız hizmetleri durdurmanın iyi bir fikir olduğunu düşünmüyorum . Bu nedenle, durdurmak istediğiniz makinede çalışan gerçek hizmet adlarını içeren bir liste yapmalısınız. Sadece postgres, mysql, http gibi "standart" hizmetleri durdurmayı düşünüyorsanız, hizmet adlarını gerçekten kolay bulabilirsiniz.
Stefan

Askubuntu grubunu kontrol edin: askubuntu.com/questions/407075/…
svassr

Yanıtlar:


439

Bir Ubuntu kutum yok, ancak Red Hat Linux'ta aşağıdaki komutu çalıştırarak çalışan tüm hizmetleri görebilirsiniz:

service --status-all

Listede +hizmetin çalıştığını, -hizmetin çalışmadığını, ?hizmet durumunun belirlenemediğini gösterir.


3
Teşekkürler. Belgeler, her bir servisin yanındaki sembollerin ne anlama geldiğini söylemez. Sanırım "+" çalışıyor ve "-" demek değil ... o zaman "?" yanında. + koşmak demek?
Oscar

89
"+" başladı "-" durdu "?" bilinmeyen kaynak
gkiko

Bunu redhat (centos) üzerinde nasıl yaparım
PolarisUser

14
Bir hizmetin neden işaretlendiğini, [-] {name}ancak sudo service {name} statusçalıştığını gösteriyor?
Mark Murphy

6
Daha sudo initctl listsonra burada @linuxnewbee tarafından belirtildiği gibi koşmak da isteyebilirsiniz .
svassr

79

Ubuntu için (12.04 ile kontrol edildi)

Tüm hizmetlerin listesini alabilir ve bunlardan birini 'grep' ile renklerine göre seçebilirsiniz:

sudo service --status-all | grep postgres

Veya doğru hizmet adını biliyorsanız başka bir yol kullanabilirsiniz:

sudo service postgresql status

4
(Ayrıca Ubuntu 12.04 kullanarak) herhangi bir etkisi olan grep görmüyorum.
notapatch

2
Grep için doğru yol:sudo service --status-all 2>&1 | grep postgres
Adam Chwedyk

sudo service x statusActive: inactive (dead)çalışan bir hizmet için burada raporlar , Ubuntu 15.04 (Canlı)
Dinei

39

Belki istediğinizi ps komutudur;

ps -ef

çalışan tüm işlemleri gösterecektir. Sonra ne aradığınız hakkında bir fikriniz varsa filtre için grep kullanın;

ps -ef | grep postgres

2
Bazen işlem adı hizmet adıyla aynı olmayabilir.
Francisco Quintero

Muhtemelen daha iyidir pgrep -a postgres. Bu da can sıkıcı olanları önler grep --color=auto needle.
Pablo A

23

Aşağıdaki komutu çalıştırırsanız, hizmetlerin bir listesini alırsınız:

sudo service --status-all

Uptart işlerinin bir listesini almak için şu komutu çalıştırın:

sudo initctl list

@Ajay Bunun nedeni Ubuntu'nun 16.10'da start-up'dan systemd'ye geçmesi . Tüm listeyi almak için kullanacağımsystemctl --full --type service --all
Pablo A

16

Bir hizmetin çalışıp çalışmadığını doğrulamanın basit bir yolu vardır

systemctl status service_name

PostgreSQL'i deneyin:

systemctl status postgresql


2

en iyi yol nmapaleti terminalde kullanmaktır. nmap, bir sistemi kullanarak analiz eden IP Address, ardından tüm aktif ağı gösteren kullanışlı bir araçtırservices .

terminalbu örneğin açılması ve kullanılması:

~$ 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
Bu sadece onun bir ağ hizmeti, tabii ki çalışır.
Şubat'ta Molomby

2

Çalıştırmak

ps -ef | işlemle ilgili grep adı

Yukarıdaki komut pid, süreç hakkında başlangıç ​​zamanı gibi tüm detayları verecektir.

tüm java realted işleminin java vermesini istiyorsanız veya işlem adınız varsa adı yerleştirin


Bu, hizmet adı 8 veya daha az karakter olana kadar çalışır. Aksi takdirde, giriş kesilir.
Tomas Kubes

0

Çalışan hizmetleri bulmak için kirli bir yol. (bazen doğru değildir, çünkü bazı özel komut dosyalarının | status | seçeneği yoktur)

[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 için, aşağıdaki komut benim için çalıştı (:

locate postgres | grep service

Çıktı:

/usr/lib/firewalld/services/postgresql.xml

/ usr / lib / systemd / system / postgresql-9.3.service

sudo systemctl status postgresql-9.3.service

0

Linux işletim sistemindeki bir hizmetin durumunu kontrol etmek için:

//in case of super user(admin) requires    
sudo service {service_name} status 
// in case of normal user
service {service_name} status 

Hizmeti durdurmak veya başlatmak için

// in case of admin requires
sudo service {service_name} start/stop
// in case of normal user
service {service_name} start/stop 

PID ile birlikte tüm hizmetlerin listesini almak için:

sudo service --status-all

Doğrudan hizmeti çağırmak yerine systemctl kullanabilirsiniz:

systemctl status/start/stop {service_name}

0

Centos 6.10 için: /sbin/service serviceNAME status

Centos 7.6 ve Ubuntu 18.04 için: systemctl status NAME.service

hepsi için çalışır: service --status-all


Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.