“service --status-all” sonuçları nasıl okunur

77

Şu anda çalışan hizmetleri tanımlamam gerekiyor, ancak service --status-all çalışmasının sonuçlarını anlayamıyorum, yani ? , - ve + demek?

$ 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

Ve bu komutu sudo ile çalıştırırsanız herhangi bir fark yaratır mısın? Denedim ve davamda fark yaratmadı, ama diğer kurulumlarda farklılık gösterebilir mi?

    
sordu Muhammad Gelbana 17.01.2014 22:52

4 cevap

84

service --status-all çıktısı, System V tarafından kontrol edilen hizmetlerin durumunu listeler.

+ , hizmetin çalışmakta olduğunu gösterir, - , durdurulmuş bir hizmeti belirtir. Bunu service SERVICENAME status ve + hizmeti için - çalıştırarak görebilirsiniz.

Bazı hizmetler Upstart tarafından yönetiliyor. Tüm Upstart hizmetlerinin durumunu sudo initctl list ile kontrol edebilirsiniz. % Co_de% tarafından yönetilen herhangi bir hizmet de Upstart tarafından sağlanan listede gösterilecek, ancak service --status-all ile işaretlenecektir.

Referans: ?

    
verilen cevap Sean 17.02.2014 17:37
25

Manpage'de belgelenmez, ancak kaynağa hızlı bir bakış ilk tahminin doğruluğunu onaylar:

  • + : hizmet çalışıyor
  • - : hizmet çalışmıyor
  • ? : hizmet durumu belirlenemiyor (bir nedenden dolayı).

Gerçek kod :

 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

Koşullar:

  • init betiği status komutunu desteklemiyorsa, durum ? .
  • init betiği ( status argümanı ile) çıkış durumu sıfır ise ve çıktı boş değil, durum + .
  • aksi halde durum - .
verilen cevap muru 09.07.2015 18:00
1

+ öğesinin etkin / çalışır durumda olduğunu, - inaktif / durdurulduğunu ve ? komutun etkin olup olmadığını kesin olarak belirleyemediğini, Hizmet betiğinde status komutu var. % Co_de% komutu, her kullanılabilir hizmet için aslında service --status-all çalışır.

    
verilen cevap Arronical 09.07.2015 17:53
0

sudo ile / olmadan çalışmanın fark yarattığını görüyorum.

/var/run/ 'daki bazı hizmetler salt kullanıcılara salt okuma erişimi var. Bu hizmetler, [-] olmadan% co_de durumunu ve sudo ile [+] değerini gösterir.

    
verilen cevap user663581 10.03.2017 00:20

Etiketlerdeki diğer soruları oku