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

120

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

    
задан Eric H 29.07.2010 в 01:40
источник

7 ответов

102

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

    
ответ дан Scott 13.10.2010 в 04:04
источник
86

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

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

Upstart

Перечислить все службы:

initctl list

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

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

Система 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
    
ответ дан TrinitronX 27.09.2015 в 05:49
13

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

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

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

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

    
ответ дан Jeremy Kerr 29.07.2010 в 05:30
12

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

apt-get install bootchart
    
ответ дан john 13.10.2010 в 05:39
11

Id использует 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.

    
ответ дан CBmemnon 21.07.2014 в 12:46
8

В 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
    
ответ дан Ciro Santilli 新疆改造中心 六四事件 法轮功 06.03.2014 в 07:26
-2

Использование 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
    
ответ дан Carlos Alvsan 07.01.2017 в 17:04