Solución 1:
En lugar de hacerlo manualmente, como se sugiere en las otras respuestas, también puede cambiar el script de inicio. Simplemente agregue una línea de este tipo al encabezado:
# chkconfig: 35 90 10
Esto le indicará a chkconfig
para agregar el servicio a los niveles de ejecución 3 y 5, con una posición inicial de 90 y una posición final de 10.
Solución 2:
Puede cambiar el orden cambiando el nombre de los enlaces simbólicos en /etc/rcX.d/ donde x será su nivel de ejecución.
Verá un montón de archivos que comienzan con Sxx o Kxx. Los enlaces S se rastrean durante el inicio, mientras que los enlaces K se analizan para el cierre. El xx aquí representa el orden.
Pero este orden se establece por una razón, así que tenga cuidado al cambiarlos, por ejemplo. ntpd debe iniciarse solo después de inicializar el subsistema de red.
Solución 3:
Desea leer un poco sobre sus niveles de ejecución y directorios rc.d. Dentro de los directorios rc.d puede encontrar los enlaces S y K, como S20apache K10apache, que es básicamente lo que ordena el inicio/cierre de los scripts.
Se están realizando algunos cambios en esta arquitectura, pero la mayoría de los linux todavía la usan.
Solución 4:
Si ha llegado hasta aquí, lo más probable es que tenga dos servicios en los que uno depende del otro pero, debido a que se están iniciando en el orden incorrecto, el que tiene la dependencia no se inicia. Las sugerencias sobre la edición de los enlaces simbólicos son informativas, en términos de ilustrar cómo se ejecuta la secuencia de inicio, y funcionarían bien hasta que alguien hiciera un "chkconfig on" en su servicio, momento en el que los enlaces simbólicos se volverían a crear como estaban originalmente. Realmente, desea tratar el problema en el nivel del script de inicio, que en realidad es mucho menos complicado de hacer de todos modos. También será consistente en los diferentes niveles de ejecución. Probablemente no necesite agregar una línea "# chkconfig" como se sugiere en la respuesta 4, ya que probablemente ya habrá una línea similar.
Usaré un ejemplo de un servidor que ejecuta Openldap (slapd) con un backend de base de datos MySQL (mysqld). Configurar ese par, y por qué es posible que desee hacerlo, es otra historia.
En el arranque, Openldap no se inicia porque depende de MySQL y la secuencia de inicio hace que intente iniciarse antes:slapd tiene la posición 27 y mysqld tiene la posición 64
Los enlaces simbólicos relevantes en /etc/rc3.d/ son
S27slapd -> ../init.d/slapd
and
S64mysqld -> ../init.d/mysqld
Busco valores establecidos en los dos guiones de inicio:
[root ~]# grep chkconfig /etc/rc.d/init.d/mysqld
# chkconfig: - 64 36
[root ~]# grep chkconfig /etc/rc.d/init.d/slapd
# chkconfig: - 27 73
Edito la línea chkconfig en /etc/rc.d/init.d/slapd para tener una posición de inicio más alta que la de /etc/rc.d/init.d/mysqld (elegí 85)
[root ~]# grep chkconfig /etc/rc.d/init.d/slapd
# chkconfig: - 85 73
Hago "chkconfig slapd on" y vuelvo a comprobar los enlaces simbólicos
[root ~]# chkconfig slapd on
[root ~]# ls -l /etc/rc3.d/ | grep mysqld
lrwxrwxrwx 1 root root 16 Dec 10 13:45 S64mysqld -> ../init.d/mysqld
[root ~]# ls -l /etc/rc3.d/ | grep slapd
lrwxrwxrwx 1 root root 15 Apr 28 14:18 S85slapd -> ../init.d/slapd
Ahora, cuando este servidor se inicia, mysqld se inicia antes que slapd y todo está bien en el mundo.