Команда для перечисления служб, которые запускаются при запуске?

Есть ли команда для вывода списка служб, запускаемых при запуске? Я полагаю, что это будет связано с разбором /etc/init.d/ и различными /etc/rc.* каталогами.

147
задан 22 April 2018 в 21:48

9 ответов

Быстрый ответ: Это зависит от Вашего init система.

Длинный ответ: Для текущих версий Ubuntu у Вас, вероятно, есть соединение Выскочки и SystemV. Более новые версии Ubuntu после 15.04 "Ярких Vervet" (и другие дистрибутивы Linux как RHEL/CentOS 7) перемещаются для использования SystemD.

Выскочка

Перечислять все сервисы:

initctl list

Перечислять все Новомодные сервисы и работать initctl show-config на них эта острота может быть полезной:

initctl list | awk '{ print $1 }' | xargs -n1 initctl show-config

System V

Перечислять все сервисы:

service --status-all

ИЛИ:

# for init scripts:
ls /etc/init.d/

# for runlevel symlinks:
ls /etc/rc*.d/

SystemD

Перечислять все сервисы:

systemctl list-unit-files --type=service

ИЛИ:

ls /lib/systemd/system/*.service /etc/systemd/system/*.service
127
ответ дан 22 April 2018 в 21:48

Используя простофилю:

ls -l /etc/rc*.d/* | gawk 'match($0, /rc([0-6S]).d.*\/(.*)$/, a) {l[a[2]]=l[a[2]]a[1]","}; END{for(v in l){print v,substr(l[v],1,length(l[v])-1)}}'

Демонстрационный вывод:

$ ls -l /etc/rc*.d/* | gawk 'match($0, /rc([0-6S]).d.*\/(.*)$/, a) {l[a[2]]=l[a[2]]a[1]","}; END{for(v in l){print v,substr(l[v],1,length(l[v])-1)}}' | egrep README
README 0,1,2,3,4,5,6,S
-2
ответ дан 22 April 2018 в 21:48

/etc/init.d и /etc/rc.* каталоги были заменены'upstart'инструмент init. Хотя сценарии в этих каталогах будут выполняться как ожидалось, новый метод для рабочих вещей на init определяется файлами в /etc/init/

Можно перечислить все новомодные задания с путем запросов выскочки по dbus:

dbus-send --print-reply --system --dest=com.ubuntu.Upstart \
        /com/ubuntu/Upstart com.ubuntu.Upstart0_6.GetAllJobs

Вам, вероятно, придется измениться 0_6 для отражения версии выскочки, Вы имеете. Эта команда работает над моей ясной установкой.

13
ответ дан 22 April 2018 в 21:48

Вы можете просто использовать команду оболочки initctl list для просмотра содержимого /etc/init, а не предложенную команду dbus-send.

0
ответ дан 22 April 2018 в 21:48

Я использую initctl show-config <servicename>, чтобы действительно получить информацию о том, когда / если ваша служба запустится во время загрузки.

Примерно так:

$ initctl show-config myservice
myservice
  start on runlevel [2345]
  stop on runlevel [!2345]

Или для NFS4 idmap-daemon:

$ initctl show-config idmapd
idmapd
  start on (local-filesystems or mounting TYPE=nfs4)
  stop on runlevel [06]

chkconfig предпочтительнее только в системах на базе RedHat imho.

0
ответ дан 22 April 2018 в 21:48

Если вам нужно хорошее графическое представление сервисов и времени, которое требуется для загрузки, попробуйте:

apt-get install bootchart
0
ответ дан 22 April 2018 в 21:48

12.04 мы могли использовать:

sudo apt-get install chkconfig
chkconfig --list

, но это было удалено в 12.10 .

Пример вывода:

acpi-support              0:off  1:off  2:on   3:on   4:on   5:on   6:off
acpid                     0:off  1:off  2:off  3:off  4:off  5:off  6:off
apparmor                  0:off  1:off  2:off  3:off  4:off  5:off  6:off  S:on
0
ответ дан 22 April 2018 в 21:48

Помимо системных служб и сценариев под:

/etc/init.d /
/lib/systemd/system /
/etc/systemd/system /

существует, вероятно Приложения AutoStart также, например:

find / -name "*autostart*"

ls -1 "/etc/xdg/autostart" "/home/$USER/.config/autostart" "/usr/share/gdm/autostart"  "/usr/share/gnome/autostart"
0
ответ дан 22 April 2018 в 21:48

Для использования Ubuntu 18.04:

systemctl list-units --type=service

вместо:

initctl

Как из Ubuntu 16.04, initctl был заменен systemd. https://www.linuxtricks.fr/wiki/systemd-les-commandes-essentielles (FR_fr)

(Если это может помочь @sanjay-manohar),

1
ответ дан 12 September 2019 в 09:14

Другие вопросы по тегам:

Похожие вопросы: