Solucion warning update-rc.d-insserv missing LSB tags and overrides

Gracias a: https://voidtech.wordpress.com/

Problema

En mi distribución debian 6 (squeeze), al agregar un script de iptables para que se ejecutara al arrancar la maquina ejecute lo que antaño siempre hacia, pero que esta véz me daría una sorpresa:
root@host:/etc/init.d# update-rc.d firewall defaults 80
update-rc.d: using dependency based boot sequencing
insserv: warning: script 'firewall2' missing LSB tags and overrides
Leyendo un poco, parece que a partir de la versión 6.0 de la distribución debian se utilizá otro sistema de arranque de servicios basado en dependencias, de modo que se “subsanaban” algunos problemas derivados de servicios que dependian unos de otros para arrancarse al iniciarse el sistema.
Este sistema se llama LSB y el comando ahora es update-rc.d-insserv

Mi solución utilizada

Para utilizar este nuevo sistema, y lograr el proposito de tener un script que se ejecute al arrancar el sistema operativo, revisando alguna documentación. Como solamente es un script que debe de ejecutarse, es decir, que no es un demonio ni voy a tener una secuencia del tipo “start|stop|reload|status|restart” me bastaba con agregar las cabeceras LSB INFO a mi script.
Estas cabeceras son las que utilizara el comando para configurar el script para el arranque.
Las cabeceras minimas serían:
#!/bin/bash
### BEGIN INIT INFO
# Provides: firewall
# Required-Start: $syslog $remote_fs $network
# Required-Stop: $syslog $remote_fs $network
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Description: Start firewall configuration
### END INIT INFO
Los elementos Required-Start y Required-Stop se utilizan para especificar que servicios se requiere que esten activos o arrancados para o bien arrancar, o bien detener nuestro script.
Los elementos Default-Start y Default-Stop se utilizan para especificar en que niveles de arranque se arrancara o detendrá nuestro script. En mi caso mi configuración es:
Default-Start on
2 used for local multiuser without remote network
3 used for full multiuser with network
4 reserved for local use
5 used for full multiuser with network and xdm
Default-Stop on
0 used for System halt
1 used for single user mode
6 used for System reboot
Los elementos Provides y Description se utilizan por insserv para mostrarlos como información.
Una vez agregada dicha cabecera a mi script, el resto ya es parecido a como siempre:

root@host:/etc/init.d# update-rc.d-insserv firewall defaults
Adding system startup for /etc/init.d/firewall ...
/etc/rc0.d/K20firewall -> ../init.d/firewall
/etc/rc1.d/K20firewall -> ../init.d/firewall
/etc/rc6.d/K20firewall -> ../init.d/firewall
/etc/rc2.d/S20firewall -> ../init.d/firewall
/etc/rc3.d/S20firewall -> ../init.d/firewall
/etc/rc4.d/S20firewall -> ../init.d/firewall
/etc/rc5.d/S20firewall -> ../init.d/firewall

Comentarios

Entradas populares de este blog

Guía de herramientas básicas para estudiantes: 31 apps y webs imprescindibles para ayudarte con los estudios

Comando FOR para archivos BAT

How to Fix Failed to Connect a Hyper-V Standalone to Veeam Backup