Как вывести список сервисов / демонов, запущенных при загрузке, и проверить порядок их загрузки


32

Я хочу быть уверен, в каком порядке сервисы запускаются во время процесса загрузки в системах на основе Debian (в частности, в Debian Squeeze).

Заранее спасибо.

Ответы:


37

Короче:

ls /etc/rc*.d

Это показывает, что начинается с какого уровня запуска, и на каждом уровне порядок определяется числом после буквы (K - Kill, S - start).

Вы можете настроить запуск каждого уровня запуска с помощью sysv-rc-conf, который устанавливается с помощью apt.

Например, в моей системе apache2 обозначен в rc5.d как «S20apache2». Ссылка в том же каталоге с S19 будет начинаться до него, что-то с S21 начнется после него.

Дальнейшее чтение:


Большое спасибо, но я должен быть уверен, что, например, чили запускается до bind9, но у них обоих есть префикс S21. Я отредактировал определенные разделы / etc / init / files Required-Start: и Required-Stop: и запустил для них update-rc.d. Есть идеи, что может пойти не так?
user155872

Вы, вероятно, хотите insserv, а не update-rc.d. Является ли Chili приложением на заказ или в репозитории Debian? Если это правильно сделанный пакет Debian, вам не нужно редактировать его скрипт инициализации, но если он сделан на заказ, попробуйте X-Start-Before, а не Required-Start (и затем включите его с помощью insserv). Ссылка: wiki.debian.org/LSBInitScripts
Алекс Форбс

Спасибо. Я узнал о insserv и еще одной вещи: «знак доллара», потому что они являются предопределенными виртуальными объектами. В противном случае следует использовать имена сценариев загрузки System V, которые можно найти в /etc/init.d/, хотя и без доллара. знак или возможное расширение .sh. " И теперь префиксы верны. Спасибо :)
user155872


9

Вы можете перечислить все сервисы и их статус с помощью этой простой команды:

service --status-all

Из руководства:

service --status-all запускает все сценарии инициализации в алфавитном порядке с командой status . Состояние [+] для запущенных служб, [-] для остановленных служб и [? ] для услуг без команды «status». Эта опция вызывает статус только для заданий sysvinit; Задания upstart могут быть запрошены аналогично списку initctl.


1
Я не думаю, что это касается части вопроса «в каком порядке».
kmarsh

2
и это также не говорит о том, какой из них включен (запуск при загрузке)
kiltek

У меня есть сценарии, которые отображаются в этой команде, но они не запускаются.
Сова

4
for i in `find /etc/rc*.d -name S*`; do basename $i | sed -r 's/^S[0-9]+//'; done | sort | uniq

Sample output:

acpid
anacron
avahi-daemon
boa
bootlogd
bootlogs
bootmisc.sh
checkfs.sh
checkroot-bootclean.sh
checkroot.sh
cryptdisks
cryptdisks-early
dbus
delayed-services
hostname.sh
hwclock.sh
keyboard-setup
killprocs
kmod
lightdm
mountall-bootclean.sh
mountall.sh
mountdevsubfs.sh
mountkernfs.sh
mountnfs-bootclean.sh
mountnfs.sh
mtab.sh
pppd-dns
procps
qemu-kvm
rc.local
rmnologin
rsyslog
single
sleep
stop-bootlogd
stop-bootlogd-single
udev
udev-mtab
x11-common

1

В Debian rcconf должен сделать свое дело, просто чтобы настроить остановку / запуск уже существующих сервисов.

Я использую это все время на Debian Jessie и Wheezy.


Не могли бы вы объяснить немного больше, как использовать инструмент, который вы упомянули?
Вомбл
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.