Cómo enumerar servicios / demonios iniciados en el arranque _y_ verificar su orden de carga


32

Quiero estar seguro de en qué orden se inician los servicios durante el proceso de arranque en los sistemas basados ​​en Debian (Debian Squeeze en particular).

Gracias por adelantado.

Respuestas:


37

En breve:

ls /etc/rc*.d

Esto muestra qué comienza en qué nivel de ejecución, y dentro de cada nivel el orden está determinado por el número después de la letra (K es Kill, S es start).

Puede configurar lo que comienza en cada nivel de ejecución con sysv-rc-conf, que se puede instalar con apt.

por ejemplo, en mi sistema, apache2 está enlazado en rc5.d como "S20apache2". Un enlace en el mismo directorio con S19 comenzaría antes, algo con S21 comenzaría después.

Otras lecturas:


Muchas gracias, pero necesito asegurarme de que, por ejemplo, el chile se inicie antes de bind9, pero ambos tienen el prefijo S21. Edité la sección particular / etc / init / files Required-Start: y Required-Stop: y ejecuté update-rc.d para ellos. ¿Alguna idea de lo que podría salir mal?
user155872

Probablemente desee insserv en lugar de update-rc.d. ¿Es Chile una aplicación a medida o en el repositorio de Debian? Si es un paquete Debian hecho correctamente, no debería necesitar editar su script de inicio, pero si está hecho a medida, intente X-Start-Before en lugar de Required-Start (y luego habilítelo con insserv). Enlace: wiki.debian.org/LSBInitScripts
Alex Forbes

Ok, gracias. Aprendí sobre insserv y una cosa más: "signo de dólar, porque son instalaciones virtuales predefinidas. De lo contrario, los nombres de los scripts de arranque del Sistema V, que se encuentran en /etc/init.d/, deberían usarse, aunque sin un dólar signo o posible extensión .sh ". Y ahora los prefijos son correctos. Gracias :)
user155872

19

¿ Ayudarían las utilidades rcconf y sysv-rc-conf ?

# aptitude install rcconf sysv-rc-conf

Luego puede ejecutarlos escribiendo rcconfo sysv-rc-conf.

rcconf sysv-rc-conf


9

Puede enumerar todos los servicios y su estado con este simple comando:

service --status-all

Del manual:

service --status-all ejecuta todos los scripts de inicio, en orden alfabético, con el comando de estado . El estado es [+] para servicios en ejecución, [-] para servicios detenidos y [? ] para servicios sin un comando de 'estado'. Esta opción solo llama al estado para trabajos sysvinit; Los trabajos de arranque pueden consultarse de manera similar con la lista initctl.


1
No creo que esto aborde la parte de "qué orden" de la pregunta.
kmarsh

2
y esto también realmente no dice cuál está habilitado (se inicia en el arranque)
kiltek

Tengo scripts que aparecen en este comando, pero no se han iniciado.
Búho

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

En Debian, rcconf debería hacer el truco, solo para configurar detener / iniciar servicios ya existentes.

Lo uso todo el tiempo en Debian Jessie y Wheezy.


¿Podría explicar un poco más cómo usar la herramienta que ha mencionado?
womble
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.