Jak wyświetlić listę usług / demonów uruchomionych przy starcie _ i sprawdzić ich kolejność ładowania

32

Chcę mieć pewność, w jakiej kolejności usługi są uruchamiane podczas procesu rozruchu w systemach opartych na Debianie (w szczególności Debian Squeeze).

Z góry dziękuję.

użytkownik155872
źródło

Odpowiedzi:

37

W skrócie:

ls /etc/rc*.d

To pokazuje, od czego zaczyna się poziom pracy i na każdym poziomie kolejność jest określana przez liczbę po literze (K to Kill, S to start).

Możesz skonfigurować, co zaczyna się na każdym poziomie pracy za pomocą sysv-rc-conf, który można zainstalować z apt.

np. w moim systemie apache2 jest dowiązany w rc5.d jako „S20apache2”. Link w tym samym katalogu z S19 zaczyna się przed nim, coś z S21 zaczyna się po nim.

Dalsza lektura:

Alex Forbes
źródło
Dziękuję bardzo, ale muszę się upewnić, że na przykład chili zostało uruchomione przed bind9, ale oba mają prefiks S21. Edytowałem poszczególne sekcje / etc / init / files Required-Start: i Required-Stop: i uruchomiłem dla nich update-rc.d. Jakieś pomysły, co może pójść nie tak?
user155872,
Prawdopodobnie chcesz insserv zamiast update-rc.d. Czy Chili jest aplikacją na zamówienie czy w repozytorium Debiana? Jeśli jest to poprawnie wykonany pakiet Debiana, nie powinieneś edytować jego skryptu inicjującego, ale jeśli jest wykonany na zamówienie, wypróbuj X-Start-Before zamiast Required-Start (a następnie włącz z insserv). Link: wiki.debian.org/LSBInitScripts
Alex Forbes
Ok dziękuję. Dowiedziałem się o insserv i jeszcze jednej rzeczy: „znak dolara, ponieważ są one predefiniowanymi wirtualnymi narzędziami. W przeciwnym razie należy używać nazw skryptów rozruchowych Systemu V, znajdujących się w pliku /etc/init.d/, choć bez dolara znak lub możliwe rozszerzenie .sh. ” A teraz prefiksy są poprawne. Dzięki :)
user155872 24.01.2013
19

Czy narzędzia rcconf i sysv-rc-conf pomogłyby?

# aptitude install rcconf sysv-rc-conf

Następnie możesz je uruchomić, wpisując rcconflub sysv-rc-conf.

rcconf sysv-rc-conf

Daniel Sokołowski
źródło
9

Za pomocą tego prostego polecenia możesz wyświetlić listę wszystkich usług i ich status:

service --status-all

Z instrukcji:

service --status-all uruchamia wszystkie skrypty inicjujące, w kolejności alfabetycznej, z poleceniem status . Status to [+] dla uruchomionych usług, [-] dla zatrzymanych usług i [? ] dla usług bez polecenia „status”. Ta opcja wywołuje status tylko dla zadań sysvinit; zadania upstart można wyszukiwać w podobny sposób za pomocą listy initctl.

Junix
źródło
1
Nie sądzę, że dotyczy to części pytania „jaka kolejność”.
kmarsh
2
i to też tak naprawdę nie mówi, który jest włączony (start przy rozruchu)
kiltek
Mam skrypty wyświetlane w tym poleceniu, ale nie są uruchamiane.
Sowa
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
Andrey
źródło
1

Na Debianie rcconf powinien załatwić sprawę, aby skonfigurować stop / start już obecnych usług.

Cały czas używam tego w Debian Jessie i Wheezy.

Exnor
źródło
Czy możesz wyjaśnić nieco więcej, jak korzystać z wspomnianego narzędzia?
womble