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


98

Şu anda çalışan hizmetleri tanımlamam gerekiyor ancak çalışanların sonuçlarını bulamıyorum service --status-all, demek istediğim ne ? , - 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ırmak fark eder mi? Denedim ve benim durumumda herhangi bir fark yaratmadı, ancak diğer kurulumlarda farklı olabilir mi?

Yanıtlar:


106

Çıktıların service --status-allkontrol ettiği hizmetlerin durumu listelenir System V.

+, Hizmeti çalışıyor belirten -durdurulmuş hizmeti belirtir. Bunu service SERVICENAME statusbir +ve -hizmet için çalıştırarak görebilirsiniz .

Bazı servisler tarafından yönetilir Upstart. İle tüm Upstartservislerin durumunu kontrol edebilirsiniz sudo initctl list. Tarafından yönetilen herhangi bir hizmet Upstartaynı zamanda tarafından sağlanan listede gösterilecektir, service --status-allancak a ile işaretlenecektir ?.

Referans: man service


2
İlgi çekici olabilir: işaretlenen -ve +stdout'a gideceğiniz hizmetler için çıktı, işaretlenen hizmetler için çıktı ?stderr'ye gider.
dave1010

1
"Upstart tarafından yönetilen herhangi bir hizmet, --status-all hizmeti tarafından sağlanan listede de gösterilecek, ancak bir? İle işaretlenecektir." Bu kesinlikle doğru değil. Bir sunucudaki her iki komutu da denedim. service --status-allbana 43 hizmet veriyor. initctl listbana 93 verir. Bu 93 kişiden sadece birkaçı kopyadır.
Andrew Ensley

Ubuntu makinem "Başlatma hizmetleri" ni "?" Olarak listelemiyor hizmet
hfrmobile

@hfrmobile, eğer hala 14.04'te değilseniz ya da kullanmak için önyükleme zamanında Upstart'systemd' kullanıyorsanız belirtin . Ayrıca artık "?" Göremiyorum. 16.04 sistemimde.
Sean,

saat 16.10 ...
hfrmobile

30

Kılavuzda belgelenmemiş, ancak kaynağa hızlı bir bakış ilk tahmini doğrulamaktadır:

  • +: servis çalışıyor
  • -: servis çalışmıyor
  • ?: hizmet durumu tespit edilemez (nedense).

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 bir statuskomutu desteklemiyorsa durum şöyledir ?.
  • init betiği ( statusargümanlı) çıkış durumu sıfırsa ve çıktı boş değilse, durum böyledir +.
  • Aksi halde devlet öyledir -.

1

Ben inanıyorum +hizmet, koşu / aktif olduğu anlamına gelir -Kullanılabilir hale gelir / durdu ve ?komut kesin hizmet yok gibi, etkin olup olmadığını belirlemek anlamına gelir statushizmet komut komutu. service --status-allKomut aslında çalışan service <service-name> statusmevcut her hizmet için.


0

Onunla / olmadan koşmanın sudobir fark yarattığını biliyorum .

İçindeki bazı servisler /var/run/yalnızca root kullanıcısına okuma erişimine sahiptir. Bu hizmetler , [-]olmadan sudove [+]ile durumunu gösterir sudo.


1
Emin misiniz? bazı servis durumları dinamik olarak değişiyor; belki sadece çeşitlilik görüyorsunuz
Zanna
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.