Definiendo el arranque y parada
Y ya estamos en lo último para terminar la serie. Ya comentábamos que para cada runlevel teníamos un directorio con enlaces simbólicos. Éstos le indican a cada runlevel qué servicios tiene que arrancar y qué servicios tiene que parar.
Como en mi Debian el runlevel por defecto es el 2, voy a ver cuáles tengo:
imperio:/etc/init.d# cd ../rc2.d
imperio:/etc/rc2.d# ls
K99gdm S20courier-authdaemon S20openbsd-inetd S89atd
README S20courier-mta S20samba S89cron
S10sysklogd S20cupsys S20ssh S90binfmt-support
S11klogd S20dbus-1 S20webmin S91apache2
S18portmap S20firestarter S21fam S99kdm
S19autofs S20inetd S21mysql-ndb S99rc.local
S19mysql-ndb-mgm S20lisa S21nfs-common S99rmnologin
S19postgresql-8.1 S20lpd S25bluetooth S99stop-bootlogd
S20acpid S20makedev S25bluez-utils
S20apmd S20mysql S89anacron
imperio:/etc/rc2.d#
Si sois observadores, el formato es que todos empiezan o bien por 'K' o bien por 'S', y no, README no es ningún script de servicio de lectura. Todo fichero que empiece por 'K' al arrancar la máquina en el runlevel determinado o al cambiar de un runlevel a otro, que en breve veremos cómo se hace, es parado.
Y claro, los más listos dirán “vale, pues con no ponerlo ya no se arranca”, pero la respuesta es fácil. ¿Y si venimos de un runlevel que sí cargaba el servicio?
Con eso ya podéis deducir para qué sirve empezar por 'S', efectivamente, es para decirle que tiene que arrancar un determinado servicio. Pero hay más, hay dos números a continuación, pues tienen la sencilla misión de indicar el orden de arranque o parada.
Fácil, ¿verdad?
Recapitulemos:
- Todos los script de administración de servicios se encuentran en 'init.d'
- Esos script los podemos usar manualmente según nuestras necesidades
- El arranque y parada de servicios de cada runlevel esta definido en un directorio llamado 'rcX.d' donde X es el número del runlevel que deseamos manipular
- Esos directorios contienen únicamente enlaces simbólicos a los scripts contenidos en 'init.d'
- Los enlaces tienen una forma especifica de nombrarlos ,'K' para parada, 'S' para arranque, un número para establecer el orden y el nombre del script que normalmente se corresponderá con el nombre
Ya vimos cómo crear enlaces simbólicos muchas entregas atrás, así que si no sabes seguir tu sólo en este momento deberías preguntarte si realmente estas aprovechando bien el curso.
De runlevel a runlevel, chico esto se mueve
Si necesitamos cambiar de un runlevel a otro, por ejemplo, por un runlevel que no tenga entorno gráfico y esto lo saben muy bien quienes han instalado alguna ver un driver de nvidia, no necesitaremos reiniciar cambiando qué runlevel arrancará por defecto. Podemos cambiar en cualquier momento con este sencillo comando:
init RUNLEVEL
Del 1 al 5 normalmente, y según nuestra configuración, cambiaremos entre los runlevel normales, si lo hacemos en 0 el ordenador se apagará y si lo hacemos en 6 se reiniciará y por lo menos en mi Debian si pongo una 's' entraría en monousuario.
Despedida
Sí, lo sé, esta entrega ha sido corta, sólo espero que os resulte útil. De momento no sé con qué empezaré la próxima entrega, ya que al escribir estas líneas estoy muerto de cansancio y no me apetece pensarlo, así que... ¡Ah, sorpresa! Hasta la semana que viene.
matados2k@imperio:~$ init 0......
Agradecimientos:
· Revisión del documento: karuchi (Carolina García).
Página oficial y dominio de mi propiedad http://matados2k.es
Matados'2k Usuario y moderador de foro.noticias3d.com
Matados'2k Usuario y moderador de www.sinuh.org
matados2k (arroba) gmail (punto) com
Este documento está sometido a la licencia de creative commons en su variante "Reconocimiento-NoComercial-SinObraDerivada 2.1 España". Es de agradecer que se comunique al autor el uso de este documento en otro medio y se debe incluir de forma obligatoria este recuadro y los agradecimientos.