Inicio > General > Configurar script al parar o reiniciar un equipo linux debian

Configurar script al parar o reiniciar un equipo linux debian

Es normal tener un equipo con muchas cosas, y querer que, por ejemplo, se ejecute un backup de algunas cuando se para el equipo, o se sincronicen otras, para eso, podemos hacer que se lance un escript cuando se para o se reinicia el equipo.

Para poder hacer esto, lo primero que tenemos que hacer es consultar un poco de documentación sobre el sistema.

El primer paso, es leernos el README que explica un poco como funciona todo.

less /etc/init.d/README

Una vez lo leemos, podemos ver como funcionan los niveles de arranque, también vemos que todos los escripts tienen que estar en el directorio /etc/init.d/, y que tienen que tener la siguiente cabezera indicando en que niveles se arrancan y paran.

### BEGIN INIT INFO
# Provides:          skeleton
# Required-Start:    $remote_fs $syslog
# Required-Stop:     $remote_fs $syslog
# Should-Start:      $portmap
# Should-Stop:       $portmap
# X-Start-Before:    nis
# X-Stop-After:      nis
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# X-Interactive:     true
# Short-Description: Example initscript
# Description:       This file should be used to construct scripts to be
#                    placed in /etc/init.d.
### END INIT INFO

Y como siempre, esto ya es obvio, pero todo escript tiene que tener el shebang al inicio del mismo

#!/bin/bash

Una vez tenemos todo esto, ya podemos hacer nuestro propio escript, como sabéis los escripts de arranque y parada son llamados con el parámetro “start” y “stop” según son llamados para ser arrancados o parados, por eso suelen tener un “case” para realizar la acción correcta en cada momento.

Una vez tenemos el escript bien definido y en el directorio indicado, es hora de configurarlo para que arranque y se pare en los niveles indicados en la cabecera, para eso ejecutamos el siguiente comando.

insserv "script"

Hay que tener en cuenta que esto es así para la versión 6 de Debian, para versiones antiguas hay que utilizar el comando “update-rc.d”.

Un poco de documentación.

http://wiki.debian.org/LSBInitScripts/

Por último, dejo un script que se ejecutaría cuando el equipo se apaga o se reinicia.

#!/bin/sh
#
## Comentarios nuestros
## Mas comentarios
#            cd /etc/init.d/
#            chmod u+x /etc/init.d/script.sh
#            insserv script.sh
### BEGIN INIT INFO
# Provides:          inicicasa
# Required-Start:
# Required-Stop:     $remote_fs $syslog
# Default-Start:
# Default-Stop:      0 6
# Short-Description: Script parada
# Description:       Script que se ejecuta al parar o reiniciar el equipo
### END INIT INFO
case $1 in
    start|restart|force-reload)
        exit 0
        ;;
    stop)
        echo "kk $(date)" > /tmp/kk
        exit 0
        ;;
    status)
        exit 0
        ;;
esac

exit
Categorías:General Etiquetas: , , ,
  1. agosto 2, 2012 a las 10:39 am

    Hello there I am so happy I found your blog, I really found you by error, while I was researching on Google for something else, Anyways I am
    here now and would just like to say cheers for a
    incredible post and a all round exciting blog (I also love
    the theme/design), I don’t have time to read through it all at the minute but I have bookmarked it and also included your RSS feeds, so when I have time I will be back to read a lot more, Please do keep up the excellent work.

  1. No trackbacks yet.

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

A %d blogueros les gusta esto: