JKlr.net, c’est quand même plus pratique ...

Accueil du site > Notes d’installations > Exécution automatique d’un script de démarrage sous Debian

Exécution automatique d’un script de démarrage sous Debian

samedi 17 novembre 2007, par JKlr


Exemple de script de démarrage gérant l’exécution de /etc/firewall.sh. Trois conditions start | stop | restart influencent le comportement de ce script :

/etc/init.d/firewall

#!/bin/sh
stop() {
iptables -F INPUT
iptables -F OUTPUT
iptables -F FORWARD
iptables -P INPUT ACCEPT
iptables -P OUTPUT ACCEPT
iptables -P FORWARD DROP
}
case $1 in
"start")
/etc/firewall.sh
;;
"stop")
stop
;;
"restart")
stop
/etc/firewall.sh
;;
esac

Afin que ce script s’exécute automatiquement ou se stop lors d’un changement de niveau d’initialisation (run level), un lien symbolique doit être créé dans chacun des répertoires /etc/rc]X.d/, où X détermine le niveau d’init.
De plus le nom de ce lien doit commencer par les lettres S ou K pour indiquer que le script doit être invoqué avec la variable start ou stop, suivit d’un numéro indiquant l’ordre d’exécussion par rapport aux autres scripts :

# ln -s /etc/init.d/firewall /etc/rc2.d/S20firewall<br/>
# ln -s /etc/init.d/firewall etc/rc0.d/K20firewall

et ainsi de suite pour chacun des répertoires rcX.d.
Afin de simplifier la procédure, il est possible d’exécuter la commande suivant qui automatise la création des liens :
# update-rc.d firewall defaults 20

liens : le guide de andesi.org de Cédric LIGNIER.

Répondre à cet article