Comment lire les résultats de "service --status-all"

75

Je dois identifier les services en cours d’exécution, mais je ne parviens pas à déterminer les résultats de l’exécution de service --status-all . Je veux dire, qu'est-ce que ? > + signifie?

$ 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

Et exécuter cette commande avec sudo ferait-il une différence? Je l'ai essayé et dans mon cas, cela n'a fait aucune différence, mais peut-il différer dans d'autres configurations?

    
posée Muhammad Gelbana 17.01.2014 - 22:52
la source

4 réponses

83

La sortie de service --status-all répertorie l’état des services contrôlés par System V .

Le + indique que le service est en cours d'exécution, - indique un service arrêté. Vous pouvez le voir en exécutant service SERVICENAME status pour un service + et - .

Certains services sont gérés par Upstart . Vous pouvez vérifier l'état de tous les services Upstart avec sudo initctl list . Tout service géré par Upstart sera également affiché dans la liste fournie par service --status-all mais sera marqué avec ? .

Référence: man service

    
réponse donnée Sean 17.02.2014 - 17:37
la source
25

Il n’est pas documenté dans la page de manuel, mais un rapide coup d’œil à la source confirme la première supposition:

  • + : le service est en cours d'exécution
  • - : le service ne fonctionne pas
  • ? : l'état du service ne peut pas être déterminé (pour une raison quelconque).

Le code actuel :

 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

Les conditions sont les suivantes:

  • si le script init ne prend pas en charge une commande status , l'état est ? .
  • si le script d'initialisation (avec l'argument status ) est nul, et la sortie n'est pas vide, l'état est + .
  • sinon l'état est - .
réponse donnée muru 09.07.2015 - 18:00
la source
1

Je crois que + signifie que le service est actif / en cours d'exécution, - signifie qu'il est inactif / arrêté et que ? signifie que la commande ne peut pas déterminer de manière définitive s'il est actif ou non. avoir une commande status dans le script de service. La commande service --status-all exécute en réalité service <service-name> status pour chaque service disponible.

    
réponse donnée Arronical 09.07.2015 - 17:53
la source
0

Je trouve que courir avec / sans sudo fait la différence.

Certains services dans /var/run/ ont un accès en lecture uniquement à l'utilisateur root. Ces services affichent l'état [-] sans sudo et [+] avec sudo .

    
réponse donnée user663581 10.03.2017 - 00:20
la source

Lire d'autres questions sur les étiquettes