Мне нужно определить работающие в данный момент сервисы, но я не могу выяснить результаты работы 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
И будет ли запуск этой команды с помощью sudo иметь какое-либо значение? Я попробовал это, и в моем случае это не имело никакого значения, но может ли это отличаться в других настройках?
-
&+
, перейдут на стандартный вывод, выходные данные для отмеченных служб?
перейдут на стандартный вывод.service --status-all
дает мне 43 услуги.initctl list
дает мне 93. Лишь немногие из этих 93 являются дубликатами.Upstart
то сейчас используете 'systemd'. Я тоже больше не вижу "?" в моей системе 16.04.Это не задокументировано на странице руководства, но быстрый взгляд на источник подтверждает первое предположение:
+
: сервис работает-
: сервис не работает?
: состояние службы не может быть определено (по какой-то причине).Фактический код :
Условия:
status
команду, состояние равно?
.status
аргументом) равно нулю, а вывод не пуст, состояние равно+
.-
.источник
Я полагаю, что это
+
означает, что служба активна / работает,-
означает, что она неактивна / остановлена, и?
означает, что команда не может окончательно определить, активна она или нет, поскольку у службы нетstatus
команды в сценарии службы. Командаservice --status-all
фактически выполняетсяservice <service-name> status
для каждого доступного сервиса.источник
Я считаю, что работа с / без
sudo
имеет значение.Некоторые сервисы
/var/run/
имеют доступ на чтение только для пользователя root. Эти сервисы показывают статус как[-]
безsudo
, так и[+]
сsudo
.источник