Comment lister les services / démons démarrés au démarrage _et_ vérifier leur ordre de chargement

32

Je veux savoir dans quel ordre les services sont démarrés lors du processus de démarrage dans les systèmes Debian (notamment Debian Squeeze).

Merci d'avance.

utilisateur155872
la source

Réponses:

37

En bref:

ls /etc/rc*.d

Cela vous montre ce qui commence à quel niveau d'exécution, et dans chaque niveau l'ordre est déterminé par le nombre après la lettre (K est Kill, S est start).

Vous pouvez configurer ce qui commence à chaque niveau d'exécution avec sysv-rc-conf, qui peut être installé avec apt.

par exemple, sur mon système, apache2 est lié symboliquement dans rc5.d en tant que "S20apache2". Un lien dans le même répertoire avec S19 commencerait avant, quelque chose avec S21 commencerait après.

Lectures complémentaires:

Alex Forbes
la source
Merci beaucoup, mais je dois être sûr que, par exemple, chilli est lancé avant bind9 mais que le préfixe S21 est utilisé pour les deux. J'ai édité la section particulière / etc / init / files Required-Start: et Required-Stop: et j'ai exécuté update-rc.d pour eux. Des idées sur ce qui pourrait mal tourner?
user155872
Vous voulez probablement insserv plutôt que update-rc.d. Chili est-il une application sur mesure ou dans le référentiel Debian? S'il s'agit d'un paquet Debian correctement, vous ne devriez pas avoir besoin de modifier son script init, mais s'il est fait sur mesure, essayez X-Start-Before plutôt que Required-Start (puis activez-le avec insserv). Lien: wiki.debian.org/LSBInitScripts
Alex Forbes
D'accord, merci. J'ai appris sur insserv et une dernière chose: "dollar", car ce sont des installations virtuelles prédéfinies. Sinon, les noms des scripts de démarrage de System V, trouvés dans /etc/init.d/, devraient être utilisés, mais sans dollar. signe ou extension .sh possible. " Et maintenant, les préfixes sont corrects. Merci :)
user155872
19

Est-ce que les utilitaires rcconf et sysv-rc-conf pourraient vous aider?

# aptitude install rcconf sysv-rc-conf

Ensuite, vous pouvez les exécuter en tapant rcconfou sysv-rc-conf.

rcconf sysv-rc-conf

Daniel Sokolowski
la source
9

Vous pouvez lister tous les services et leur statut avec cette commande simple:

service --status-all

Du manuel:

service --status-all exécute tous les scripts d'initialisation, dans l'ordre alphabétique, avec la commande status . Le statut est [+] pour les services en cours d’exécution, [-] pour les services arrêtés et [? ] pour les services sans commande "status". Cette option appelle uniquement le statut pour les travaux sysvinit; Les tâches parvenues peuvent être interrogées de la même manière avec initctl list.

Junix
la source
1
Je ne pense pas que cela concerne la partie "quel ordre" de la question.
kmarsh
2
et cela ne dit pas non plus lequel est activé (démarrage au démarrage)
kiltek
J'ai des scripts qui apparaissent dans cette commande, mais ils ne sont pas démarrés.
Hibou
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
la source
1

Sur Debian, rcconf devrait faire l'affaire, juste pour configurer l'arrêt / le démarrage de services déjà présents.

Je l'utilise tout le temps sur Debian Jessie et Wheezy.

Exnor
la source
Pourriez-vous expliquer un peu plus comment utiliser l'outil que vous avez mentionné?
Womble