[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: scripts!!!!



On Mon, 2003-02-03 at 22:35, Marcxelo wrote:
> ----------------------------------------------------------------------------------------------------------------
> #!/bin/bash
> 
> /etc/firewall/nombre_del_programa.
> ----------------------------------------------------------------------------------------------------------------
> este scripts esta bien no!!!!

Déjame ver si te entiendo...  ¿Quieres que ese script se ejecute al
iniciar la máquina, y por tanto lo vas a poner en /etc/init.d?

Si es así, el script no está del todo bien.  Los scripts de init.d
tienen una interfaz de usuario estándar: aceptan un parámetro, que puede
ser "start", "stop" ó "restart" (o algunos opcionales, como "reload").

Tu script debería verse algo así:

------------------------------------------------------------------------
#!/bin/sh

PATH=/bin:/usr/bin:/sbin:/usr/sbin

case "$1" in
  start)
    ... comandos a ejecutar en "start" ...
    ;;
  stop)
    ... comandos a ejecutar en "stop" ...
    ;;
  restart|force-reload)
    ... comandos a ejecutar en "reload" ...
    ;;
  *)
    echo "Usage: /etc/init.d/authd {start|stop|restart|force-reload}"
    exit 1
    ;;
esac

exit 0
------------------------------------------------------------------------

En tu caso, entre los comandos a ejecutar en "start" seguramente habrá
un "/etc/firewall/loquesea".  En "stop" deberías desactivar el firewall
(con algunos iptables -F, o con otro script, quizá).  En "restart",
desactivas y activas el firewall.

Hecho el script y puesto en init.d, tienes que crear symlinks en uno o
varios directorios rc<N>.d, donde <N> es un "run level" en que quieres
que se ejecute.  Definitivamente no me voy a meter en una discusión
sobre run levels; te refiero al manual init(8) para mas detalles.  En tu
caso, probablemente quieres usar los run levels 2, 3, 4 y/o 5.

Ejemplo: ln -s /etc/init.d/loquesea /etc/rc2.d/S20loquesea

Que te sea leve.

 -CR




Reply to: