Iniciar servicios en arranque
Publicado: 8 Abril, 2011 - 16:19 Iniciar servicios en arranque
Hola a todos, tengo una duda. Quiero iniciar un servicio en mi servidor en el arranque. He leido un poco sobre el tema y veo que existen dos posibilidades:
1. Agregar una linea en /etc/rc.local
2. Crear un fichero en /etc/default/
Para la segunda opcion, ¿el nombre del fichero tiene que ser el mismo que el de /etc/init.d/? Supongo que si.
¿Cual es la mejor opcion?
Tambien quiero que el servicio X se ejecute antes de que el servicio Y, ¿como lo hago?
Queria saber vuestra experiencia sobre este tema.
Muchas gracias y hasta pronto.
- Inicie sesión o regístrese para enviar comentarios
- 608 lecturas


Solía realizar este tipo de configuración manual, hasta que encontré esto:
sysv-rc-conf
Existe lo que se conoce como LSB (Linux Standard Base), que es una serie de especificaciones que pretenden -como su nombre lo indica- llegar a estandarizar ciertos procesos o configuraciones de los sistemas GNU/Linux.
Las siguientes líneas son ejemplo de el encabezado de un script que se encuentre en /etc/init.d/ , en donde las X representan los datos que debes introducir para que el sistema sepa cuándo arranca, en qué runlevels, y qué otros servicios se requieren antes de que inicie este:
### BEGIN INIT INFO# Provides: xxxxxxxxxx
# Required-Start: xxxxxxxxxxxxx
# Required-Stop: xxxxxxxx
# Default-Start: x x x x
# Default-Stop: x x x
# Short-Description: xxxxxxxxxx
# Description: xxxxxxxxxxxxxx
### END INIT INFO
Una vez que esté listo tu script entonces usarías el comando update-rc.d para que el sistema configure el arranque del script.
Las palabras que he resaltado con negritas son las que debes usar en el buscador de esDebian.org para empezar. sysrc-v-conf también lo uso pero sólo para activar/desactivar el arranque de servicios en ciertos runlevels, previo a ello el sistema debe saber que dichos servicios existen, y es mediante la forma que te he indicado antes. Por lo menos es lo que yo sé o medio entiendo del tema.
Saludos,
Sidd.
En mi caso particular los agrego a mano en algunos casos en /etc/rc.local y en otros casos uso rcconf, para habilitar/deshabilitar servicios.
Saludos
En mi caso particular los agrego a mano en algunos casos en /etc/rc.local y en otros casos uso rcconf, para habilitar/deshabilitar servicios.
Saludos
De esta forma es mucho más práctica creo, igualmente lo hago de la misma forma.
En mi caso particular los agrego a mano en algunos casos en /etc/rc.local y en otros casos uso rcconf, para habilitar/deshabilitar servicios.
Saludos
Yo creo dependerá de las necesidades porque definitivamente así es más rápido y sencillo, mientras que con la forma que yo comenté se requiere más tiempo y configuración. Otra diferencia es que con la forma sencilla el servicio únicamente funcionará con algunos runlevels (multiusuarios) mientras que con la más compleja es posible indicar de forma específica en cuáles runleves arrancará, independientemente de que sean multiusuarios o no. También con la forma compleja es posible agregar las funciones para los parámetros start, restart, status, stop, aplicándolos al servicio en cuestió desde /etc/init.d/ .
Saludos,
Sidd.
Muchas gracias a todos por vuestras respuestas, el script de init lo he encontrado en un foro y empieza asi:
#!/bin/bash### BEGIN INIT INFO
# Provides: CCcam
# Required-Start: $network
# Required-Stop: $network
# Default-Start: 3 5
# Default-Stop: 0 1 2 6
# Description: Start, Stop or Restart the CCcam softcam
### END INIT INFO
Despues ejecuto esto y me da el error:
# update-rc.d cccam defaults 21update-rc.d: using dependency based boot sequencing
update-rc.d: warning: cccam start runlevel arguments (2 3 4 5) do not match LSB Default-Start values (3 5)
update-rc.d: warning: cccam stop runlevel arguments (0 1 6) do not match LSB Default-Stop values (0 1 2 6)
Lo que no me queda claro es lo de los runlevels, he leido un poco pero no me queda claro (http://wiki.debian.org/RunLevel). La duda tengo con estos parametros: Default-Start, Default-Stop y el numero en la ejecucion de update-rc.d.
Tambien he probado esto:
insserv cccamPero como no sale nada en el output no se si funciona.
Si configuro bien el script y despues ejecuto "update-rc.d", ¿es suficiente para que arranque en el arranque?
Os agradezco cualquier ayuda con este tema, tengo otro post pendiente de solucionar sobre los runlevels, a ver si esta vez entiendo como funcionan.
Muchas gracias y hasta pronto.
Intenta reemplazando:
# Default-Start: 2 3 4 5# Default-Stop: 0 1 6
Intenta reemplazando:
# Default-Start: 2 3 4 5# Default-Stop: 0 1 6
Muchas gracias, lo he cambiado y despues he ejecutado esto:
# update-rc.d cccam defaults 21update-rc.d: using dependency based boot sequencing
insserv: warning: current start runlevel(s) (3 5) of script `cccam' overwrites defaults (2 3 4 5).
insserv: warning: current stop runlevel(s) (0 1 2 6) of script `cccam' overwrites defaults (0 1 6).
Realmente no se porque ejecuto con el numero 21, lo hago porque para otro script me funciona asi (lo he visto por internet).
Muchas gracias de nuevo.
Intenta reemplazando:
# Default-Start: 2 3 4 5# Default-Stop: 0 1 6
mas bien debería sacar el dos (2) del stop, y como se trata de un sistema basado en dependencias ejecuta solamente:
# update-rc.d mount_all defaults