यह जांचने के लिए कि कोई विशेष सेवा उबंटू पर चल रही है या नहीं


253

मुझे सेवा का नाम नहीं पता है, लेकिन मैं इसकी स्थिति की जाँच करके सेवा को रोकना चाहूंगा।

उदाहरण के लिए, यदि मैं जांचना चाहता हूं कि क्या PostgreSQL सेवा चल रही है या नहीं, लेकिन मुझे सेवा का नाम नहीं पता है, तो मैं इसकी स्थिति कैसे जांच सकता हूं?

मुझे पता है कि सेवा का नाम ज्ञात है तो स्थिति की जांच करने के लिए कमांड।


1
तो आप कैसे जानते हैं कि यह सही सेवा है अगर आपको नहीं पता कि यह नाम है? मैं /etc/init.d/ पर बहुत से init स्क्रिप्ट्स जोड़ सकता हूँ, जिसमें कीवर्ड पोस्टग्रैज़ वाले नाम (हालाँकि यह संवेदनहीन होगा!) और आप यह कैसे जान सकते हैं कि आप जिस सेवा को रोकना चाहते हैं? Plz अपने संदर्भ के लिए कुछ स्पष्टीकरण जोड़ें
स्टीफन

1
@Stefan के रूप में मैं लिनक्स कमांड्स के लिए नया हूं, मैं यह जानना चाहूंगा कि क्या मुझे सही सेवा का नाम नहीं पता है, लेकिन आंशिक रूप से सेवा के नाम का हिस्सा या जैसे नाम का उपयोग कर सकते हैं, मैं वही पा सकता हूं
abcd

1
आप सेवा सूचियों या ps -ef का उपयोग कर सकते हैं और आउटपुट को पार्स कर सकते हैं। किसी भी तरह से मुझे नहीं लगता कि यह एक अच्छा विचार है जो सेवाओं को रोक रहा है जो आपको लगता है कि रोकने के लिए हैं लेकिन निश्चित नहीं हैं । इसलिए आपको मशीन पर चलने वाले वास्तविक सेवा नामों के साथ एक सूची बनानी चाहिए जिसे आप बंद करना चाहते हैं। यदि आप पोस्टग्रेज, माईस्क्ल, http जैसी "मानक" सेवाओं को केवल रोकने के लिए विचार करते हैं, तो आप वास्तव में आसान सेवा नामों का पता लगा सकते हैं।
स्टीफन

जवाबों:


438

मेरे पास एक उबंटू बॉक्स नहीं है, लेकिन Red Hat Linux पर आप निम्नलिखित कमांड चलाकर सभी चालू सेवाओं को देख सकते हैं:

service --status-all

सूची में +इंगित करता है कि सेवा चल रही है, -इंगित करता है कि सेवा नहीं चल रही है, ?इंगित करता है कि सेवा स्थिति निर्धारित नहीं की जा सकती है।


3
धन्यवाद। प्रलेखन यह नहीं कहता है कि प्रत्येक सेवा के आगे प्रतीकों का क्या अर्थ है। मुझे लगता है कि "+" का अर्थ है कि यह चल रहा है और "-" का अर्थ है कि यह नहीं है ... फिर "?" बहुतों के आगे। + मतलब चल रहा है?
ऑस्कर

89
"+" शुरू "-" रोका "?" अज्ञात स्रोत
gkiko

मैं इसे
रेडहैट

14
कोई भी विचार क्यों एक सेवा के साथ चिह्नित है [-] {name}लेकिन sudo service {name} statusचल रहा है के रूप में दिखाता है?
मार्क मर्फी

6
आप के sudo initctl listरूप में अच्छी तरह से चलाने के लिए , के रूप में यहाँ के बाद @linuxnewbee द्वारा उल्लेख किया जा सकता है।
svassr

79

Ubuntu के लिए (12.04 के साथ जाँच की गई)

आप सभी सेवाओं की सूची प्राप्त कर सकते हैं और उनमें से किसी एक को 'grep' के साथ चुन सकते हैं:

sudo service --status-all | grep postgres

या यदि आप सेवा का सही नाम जानते हैं तो आप दूसरे तरीके का उपयोग कर सकते हैं:

sudo service postgresql status

4
मुझे कोई प्रभाव नहीं दिख रहा है (Ubuntu 12.04 का उपयोग करके)।
नोटपैड

2
sudo service --status-all 2>&1 | grep postgres
क्रेप

sudo service x statusActive: inactive (dead)एक चल रही सेवा के लिए यहां रिपोर्ट , उबंटू 15.04 (विविड)
दीनी

39

शायद आप जो चाहते हैं वह ps कमांड है;

ps -ef

आपको चलने वाली सभी प्रक्रियाओं को दिखाएगा। फिर अगर आपको इस बात का अंदाजा है कि आप फ़िल्टर के लिए grep का उपयोग क्या कर रहे हैं;

ps -ef | grep postgres

2
कभी-कभी प्रक्रिया का नाम सेवा नाम के समान नहीं होता है।
फ्रांसिस्को क्विन्टो

शायद बेहतर है pgrep -a postgres। यह उन लोगों को परेशान करने से भी बचता है grep --color=auto needle
पाब्लो ए

23

यदि आप निम्नलिखित कमांड चलाते हैं तो आपको सेवाओं की एक सूची मिलेगी:

sudo service --status-all

अपस्टार्ट नौकरियों की सूची प्राप्त करने के लिए इस कमांड को चलाएं:

sudo initctl list

@ अजय ऐसा इसलिए है क्योंकि उबंटू ने 16.10 को सिस्टमस्टार्ट से ऊपर की ओर स्विच किया । पूरी सूची प्राप्त करने के लिएsystemctl --full --type service --all
पाब्लो ए

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
यह केवल तभी काम करता है जब इसकी नेटवर्क सेवा, जाहिर है।
मोलोमबी

2

Daud

ps -ef | grep नाम-से-संबंधित प्रक्रिया

ऊपर की कमान सभी विवरण देगी जैसे कि पीआईडी, प्रक्रिया के बारे में समय शुरू करना।

जैसे अगर आप चाहते हैं कि सभी java realted process java दें या यदि आपके पास प्रक्रिया का नाम है तो नाम दें


यह तब तक काम करता है जब तक कि सेवा का नाम 8 वर्ण या उससे कम न हो। अन्यथा, सूची को काट दिया जाता है।
टॉमस क्यूब्स

0

चल रही सेवाओं को खोजने का गंदा तरीका। (कुछ समय में यह सटीक नहीं है क्योंकि कुछ कस्टम स्क्रिप्ट में स्थिति नहीं है | स्थिति | विकल्प)

[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

सेंटोस के लिए, नीचे दिए गए कमांड ने मेरे लिए काम किया:

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

लिनक्स ऑपरेटिंग सिस्टम पर एक सेवा की स्थिति की जांच करने के लिए:

//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 status/start/stop {service_name}

0

सेंटोस 6.10 के लिए: /sbin/service serviceNAME status

सेंटोस 7.6 और ubuntu 18.04 के लिए: systemctl status NAME.service

उन सभी के लिए काम करता है: service --status-all


हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.