Información blog

Linux, tutoriales, noticias, sistemas, redes y seguridad informática, entre otras cosas.

viernes, 8 de febrero de 2013

Cómo evitar los warnigns que nos aparecen al intentar incluir un script en el arranque de Linux.

A menudo habréis podido comprobar que al intentar incluir un script en el arranque de un sistema operativo Linux, éste os muestra una serie de warnings, alertándoos de que vuestro script no posee algunas características recomendables. Esto de momento no es demasiado importante, pues no entorpece el funcionamiento del sistema, pero en recomendable solucionarlo, porque en un futuro no muy lejano será obligatorio incluir aquello.

Todo esto proviene de la política LSB (Linux Estándar Base), que ya está siendo implantada en todas las distribuciones y cuyo objetivo es que todos los sistemas sigan unas directrices comunes para estandarizar algunos procesos, entre ellos el arranque. En vista de la constante ampliación del mundo de Linux, es normal encontrarnos con cosas cómo esta, pero por suerte tienen una fácil solución que, aunque suele ser difícil de memorizar, al ser siempre lo mismo puede ser pegado en un fichero al que podamos recurrir cuando queramos realizar un script de arranque. La solución es bien sencilla:

  1. #!/bin/bash
  2.  
  3. ### BEGIN INIT INFO
  4. # Provides:          Nombre del script
  5. # Required-Start:    $remote_fs $network
  6. # Required-Stop:     $remote_fs $network
  7. # Default-Start:     2 3 4 5
  8. # Default-Stop:      0 1 6
  9. # Short-Description: LSB
  10. # Description:       Codigo indispensable para respetar LSB
  11. ### END INIT INFO

Este sería el código indispensable en el inicio de todos los scripts de arranque. En Provides habría que poner el nombre de vuestro script.  En Required-Start y stop, veréis varios nombres que comienzan con el símbolo del $. Éstos hacen referencia a los servicios que ya tienen que estar arrancados antes de ejecutarse el script y los que he escrito no son obligatorios, pueden ser los que a nosotros nos convengan porque hay varios para elegir, siendo obligatorio poner al menos uno  .Cada uno tiene el siguiente significado:

  • $local_fs: Todo el sistema local ya está montado antes de iniciarse el script.
  • $network: Las interfaces de red ya han sido activadas.
  • $named: El dns y la red en sí ya están 100% operativas.
  • $remote_fs: Todo el sistema de ficheros local y remoto están montados.
  • $syslog: El log del sistema está operativo.
  • $time: La fecha y hora del sistema ya han sido establecidas correctamente.
  • $portmap: El portmapper está disponible.

Yo personalmente veo indispensable poner siempre por lo menos $remote_fs y según que casos, también $network. El resto son más circunstanciales. Luego están Default_start y stop. Aquellos que tengan familiaridad con update-rc.d verán que lo que he es lo mismo que se suele poner con dicho comando. Esto no es necesario modificarlo con dejarlo cómo está vale, mientras que Short_description y Description, no tienen relevancia en el sistema, no importa lo que se ponga pero lo adecuado es poner siempre algo que ayude al usuario cuando vea el script.

No hay comentarios :

Publicar un comentario