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

Эти конкретные проекты сделаны вручную Мэтью Полем Томасом на графике.

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

6 ответов

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

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

Upstart

Документация Upstart [d9 ] Чтобы перечислить все службы:

initctl list

Чтобы перечислить все службы Upstart и запустить initctl show-config на них, этот однострочный может быть полезным:

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

System V [ ! d11] Документация по стартовому устройству

Чтобы перечислить все службы:

service --status-all

ИЛИ:

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

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

SystemD

Документация Upstart Документация FedoraProject SystemD RHEL 7: Управление службами с помощью SystemD RedHat: Обзор SystemD

Список всех служб:

systemctl list-unit-files --type=service

ИЛИ:

ls /lib/systemd/system/*.service /etc/systemd/system/*.service
72
ответ дан 29 May 2018 в 13:06

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

. Вы можете перечислить все вышестоящие задания, запросив выскочку по dbus: [ ! d1]

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

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

13
ответ дан 29 May 2018 в 13:06
  • 1
    @Eric H: Может ли ваш ответ ответить ниже, вместо этого - initctl list намного лучше, чем эта команда dbus. Я хотел бы оставить этот ответ здесь для справки (а не для его удаления полностью). – Jeremy Kerr 24 February 2011 в 08:48

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

apt-get install bootchart
12
ответ дан 29 May 2018 в 13:06

Идентификатор использует 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.

11
ответ дан 29 May 2018 в 13:06
  • 1
    Это правильный ответ. Я понятия не имею, почему все неправильные и неполные ответы так сильно поддержаны. – Cerin 8 September 2016 в 18:35
  • 2
    Это не работает для людей, использующих SysV, я согласен, что это хороший ответ, но он неполный. – Gabriel Netto 12 December 2016 в 16:59

В 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
8
ответ дан 29 May 2018 в 13:06
  • 1
    Не работает в Ubuntu. packages.ubuntu.com/&hellip – A.B. 24 April 2015 в 10:21
  • 2
    @ A.B. Спасибо, что дали мне знать! Редко кто-то может прокомментировать сегодняшние комментарии: он требует мужества и позволяет мне учиться. обновляется с версией, в которой он работает. – Ciro Santilli 包子露宪 六四事件 法轮功 24 April 2015 в 10:58
  • 3
    On Precise: packages.ubuntu.com/precise/chkconfig – Ciro Santilli 包子露宪 六四事件 法轮功 24 April 2015 в 10:59

Использование gawk:

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
ответ дан 29 May 2018 в 13:06

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

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