Activar servicio personalizado en redhat

Me gustaría saber como puedo activar o iniciar un servicio creado por mi, ren linux redhat. Ej: yo cree un servicio llamado icelpd que usa el puerto 2346/tcp; ya tengo los scripts, pero me gustaría arrancar el servicio cuando comience linux redhat.

1 respuesta

Respuesta
1
El proceso es bastante sencillo. Todos los scripts de inicio de linux (independiente de la distribución) están en /etc/rc.d
Debajo de este directorio típicamente hay los siguientes directorios :
Rc0.d
Rc1.d
..
Rc6.d
Init.d
Los directorios rcx. D son los directorios que contienen los scripts que se ejecutan al entrar o salir de un determinador nivel de ejecución (run level).
Los scripts que se ejecutan al entrar al nivel de ejecución son los SNNnombre.
La ES indica que son para el arranque, el NN es un número que indica el orden de ejecución, y el nombre es el nombre nemotecnico del servicio. Al entrar en el nivel de ejecución correspondiente al número del directorio se ejecutan todos los scripts ES por orden alfabético (por eso para controlar el orden se emplean los dos números, para que sea fácil).
En el mismo directorio hay los scripts que se han de ejecutar al salir que son los KxxNombre (K de Kill), que suelen ser scripts de parada.
Cada run level tiene su significado, por ejemplo el rc0. D tiene típicamente 2 scripts ES (S00killall, S01halt) de nombres suficientemente descriptivos, y todos los demás son K.
Para determinar en que directorio has de poner tus scripts simplemente has de determinar en que run levels ha de estar disponible el servicio y que servicios previos han de estar arrancados. Lo mejor usualmente es una vez seleccionado el directorio seleccionar un número grande para que se ejecuten todos los otros scripts antes (a no ser obviamente que sea necesario que se ejecute tu servicio antes que alguno de los que ya arranca el sistema por defecto). Has de pensar que lo mismo has de hacer para cuando se para.
Has de tener en cuenta que estos scripts (los que vienen al instalar, y que es recomendable seguir su estrategia) no son más que links a scripts que están en el directorio init.d, simplemente que los scripts que están en el directorio init. D son scripts completos con dos secciones : start y stop.
De esta forma ejecutar el /etc/rc.d/rc2.d/S90crond no es más que ejecutar en el momento adecuado el /etc/rc.d/init.d/crond start (y arranca el demonio cron)
Por tanto para seguir esta filosofía lo que has de hacer es poner en el directorio init. D tu script, con las dos secciones indicadas, y luego los link.
Para entender mejor los niveles de arranque puedes consultar cualquier manual de linux, o el propio man

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas