"सेवा --status- सभी" परिणाम कैसे पढ़ें


98

मुझे वर्तमान में चल रही सेवाओं की पहचान करने की आवश्यकता है, लेकिन मैं चलाने के परिणामों का पता नहीं लगा सकता service --status-all, मेरा मतलब है कि क्या करता है ? , - और + मतलब?

$ service --status-all
 [ + ]  acpid
 [ + ]  anacron
 [ + ]  apparmor
 [ ? ]  apport
 [ ? ]  atieventsd
 [ + ]  avahi-daemon
 [ ? ]  binfmt-support
 [ + ]  bluetooth
 [ - ]  brltty
 [ + ]  console-font
 [ + ]  console-setup
 [ + ]  cron
 [ + ]  cups
 [ + ]  cups-browsed
 [ - ]  dbus
 [ ? ]  dns-clean
 [ + ]  friendly-recovery
 [ - ]  grub-common
 [ ? ]  irqbalance
 [ - ]  kerneloops
 [ ? ]  killprocs
 [ + ]  kmod
 [ ? ]  lightdm
 [ - ]  lm-sensors
 [ ? ]  mysql
 [ ? ]  networking
 [ ? ]  ondemand
 [ ? ]  pppd-dns
 [ - ]  procps
 [ - ]  pulseaudio
 [ ? ]  rc.local
 [ + ]  resolvconf
 [ + ]  rfkill-restore
 [ + ]  rfkill-store
 [ - ]  rsync
 [ + ]  rsyslog
 [ + ]  saned
 [ ? ]  sendsigs
 [ + ]  setvtrgb
 [ ? ]  speech-dispatcher
 [ - ]  sudo
 [ + ]  timidity
 [ + ]  udev
 [ ? ]  umountfs
 [ ? ]  umountnfs.sh
 [ ? ]  umountroot
 [ - ]  unattended-upgrades
 [ - ]  urandom
 [ + ]  virtualbox
 [ - ]  x11-common

और सूडो के साथ इस कमांड को चलाने से कोई फर्क पड़ेगा? मैंने इसकी कोशिश की और मेरे मामले में इससे कोई फ़र्क नहीं पड़ा, लेकिन क्या यह दूसरे सेटअपों में भिन्न हो सकता है?

जवाबों:


106

service --status-allसूचियों के उत्पादन द्वारा नियंत्रित सेवाओं की स्थिति को सूचीबद्ध करता है System V

+इंगित करता है सेवा चल रही है, -एक बंद कर दिया सेवा इंगित करता है। आप इसे service SERVICENAME statusएक +और -सेवा के लिए चलाकर देख सकते हैं ।

कुछ सेवाओं द्वारा प्रबंधित किया जाता है Upstart। आप सभी Upstartसेवाओं की स्थिति देख सकते हैं sudo initctl list। द्वारा प्रबंधित कोई भी सेवा Upstartप्रदान की गई सूची में भी दिखाई service --status-allदेगी, लेकिन एक के साथ चिह्नित की जाएगी ?

संदर्भ: man service


2
रुचि हो सकती है: चिह्नित सेवाओं के लिए आउटपुट -और +stdout में जाएंगे, चिह्नित सेवाओं के लिए आउटपुट ?stderr पर जाएंगे।
dave1010

1
"उपस्टार्ट द्वारा प्रबंधित कोई भी सेवा सेवा द्वारा प्रदान की गई सूची में भी दिखाई देगी - सभी को लेकिन ए के साथ चिह्नित किया जाएगा।" यह कड़ाई से सच नहीं है। बस एक सर्वर पर दोनों आदेशों की कोशिश की। service --status-allमुझे 43 सेवाएं देता है। initctl listमुझे 93 देता है। उन 93 में से केवल कुछ ही डुप्लिकेट हैं।
एंड्रयू एन्स्ले

मेरी उबंटू मशीन "अपस्टार्ट सेवाओं" को "के रूप में" सूचीबद्ध नहीं करती है? सेवा
hfrmobile

@hfrmobile जब तक आप अभी भी 14.04 पर हैं या बूट समय पर निर्दिष्ट करें कि Upstartआप 'systemd' का उपयोग कर रहे हैं। मैं भी अब नहीं देख रहा हूँ "?" मेरी 16.04 प्रणाली पर।
सीन

16.10 चल रहा है ...
hfrmobile

30

यह मैनपेज में प्रलेखित नहीं है, लेकिन स्रोत पर एक त्वरित नज़र पहले अनुमान की पुष्टि करता है:

  • +: सेवा चल रही है
  • -: सेवा नहीं चल रही है
  • ?: सेवा की स्थिति (किसी कारण से) निर्धारित नहीं की जा सकती।

वास्तविक कोड :

 if ! is_ignored_file "${SERVICE}" \
 && [ -x "${SERVICEDIR}/${SERVICE}" ]; then
         if ! grep -qs "\(^\|\W\)status)" "$SERVICE"; then
           #printf " %s %-60s %s\n" "[?]" "$SERVICE:" "unknown" 1>&2
           echo " [ ? ]  $SERVICE" 1>&2
           continue
         else
           out=$(env -i LANG="$LANG" PATH="$PATH" TERM="$TERM" "$SERVICEDIR/$SERVICE" status 2>&1)
           if [ "$?" = "0" -a -n "$out" ]; then
             #printf " %s %-60s %s\n" "[+]" "$SERVICE:" "running"
             echo " [ + ]  $SERVICE"
             continue
           else
             #printf " %s %-60s %s\n" "[-]" "$SERVICE:" "NOT running"
             echo " [ - ]  $SERVICE"
             continue
           fi
         fi
   #env -i LANG="$LANG" PATH="$PATH" TERM="$TERM" "$SERVICEDIR/$SERVICE" status
 fi

शर्तें हैं:

  • अगर init स्क्रिप्ट एक statusकमांड का समर्थन नहीं करता है , तो राज्य है ?
  • यदि init स्क्रिप्ट ( statusतर्क के साथ ) बाहर निकलने की स्थिति शून्य है और आउटपुट खाली नहीं है, तो राज्य है +
  • अन्यथा राज्य है -

1

मेरा मानना ​​है कि +सेवा सक्रिय / चल रही है, -इसका मतलब है कि यह निष्क्रिय / रोका हुआ है, और ?इसका मतलब है कि कमान निर्णायक रूप से यह निर्धारित नहीं कर सकती है कि यह सक्रिय है या नहीं, क्योंकि statusसेवा में स्क्रिप्ट नहीं है। service --status-allआदेश वास्तव में चलाता है service <service-name> statusहर उपलब्ध सेवा के लिए।


0

मुझे लगता है कि साथ / बिना चलने से sudoफर्क पड़ता है।

कुछ सेवाओं में /var/run/केवल रूट उपयोगकर्ता तक ही पहुंच होती है। उन सेवाओं के [-]बिना sudoऔर [+]साथ स्थिति दिखाते हैं sudo


1
क्या आपको यकीन है? कुछ सेवा स्थितियां गतिशील रूप से बदलती हैं; शायद आप सिर्फ बदलाव देख रहे हैं
Zanna
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.