miércoles, 21 de marzo de 2012

Detener e iniciar servicios durante y después del arranque de Linux

Generalidades

/sbin/init es el primer proceso y padre del resto.

Runlevel
El término runlevel o nivel de ejecución se refiere al modo de operación del Sistema Operativo.
La mayor parte de usuarios de sistemas puede comprobar el nivel de ejecución actual con cualquiera de los comandos siguientes:
$ who -r           # como cualquier usuario
$ runlevel         # como usuario root

Los 7 niveles de ejecución (runlevels) estándar
Nivel de ejecución
Nombre o denominación
Descripción
0
Alto
Alto o cierre del sistema (Apagado).
1
Modo de usuario único (Monousuario)
No configura la interfaz de red o los demonios de inicio, ni permite que ingresen otros usuarios que no sean el usuario root, sin contraseña. Este nivel de ejecución permite reparar problemas, o hacer pruebas en el sistema.
2
Multiusuario
Multiusuario sin soporte de red.
3
Multiusuario con soporte de red.
Inicia el sistema normalmente.
4
No usado.
5
Multiusuario gráfico (X11)
Similar al nivel de ejecución 3 + display manager.
6
Reinicio
Se reinicia el sistema.


Modificación de servicios de al Inicio del Sistema
El script /etc/init.d/rc recibe un argumento con el runlevel a arrancar. Va al directorio /etc/rcX.d/, donde X es el runlevel, ejemplo:
/etc/init.d/rc 0
/etc/init.d/rc 1
/etc/init.d/rc 2
/etc/init.d/rc 3
/etc/init.d/rc 4
/etc/init.d/rc 5
/etc/init.d/rc 6
En cada uno de los directorios hay enlaces simbólicos que apuntan a scripts en /etc/init.d que son los que realmente arrancan los servicios e inicializan el teclado, sincronizan el reloj hardware, etc
Los enlaces simbólicos en /etc/rcX.d empiezan por S o K (start) o (kill), seguidos de dos dígitos y apunta a un script con el mismo nombre pero sin S ni K ni los dos dígitos en /etc/init.d

Para que un servicio NO se cargue durante el inicio del sistema se debe cambiar en /etc/rcX.d la S, de start, inicial por la K, de kill, ejemplo:
sudo mv S20ntop K20ntop

Para que SI se cargue :
sudo mv KNombreServicio SNombreServicio

En ambos casos se debe incluir los dos dígitos entre S ó K y el nombre del servicio. Éste número indica el orden en que arrancará el servicio. A un número menor se arrancará antes que otro con uno mayor.

Si lo que queremos es parar, arrancar o reiniciar un servicio después del arranque del sistema, se puede ejecutar la siguiente línea:
/etc/init.d/NombredelServicio {start|stop|restart|force-reload-reload}
sudo /etc/inti.d/firebird2.1-super restart

No hay comentarios:

Publicar un comentario