Script init.d

De WindowsLinux.net - Astuces pour Windows et Linux !.

/etc/init.d/ est le répertoire contenant tous vos scripts exécutés au démarrage de votre machine linux.


Si vous désirez ajouter un nouveau service au lancement de votre machine, il faut créer un script /etc/init.d/ . Les nombreux scripts existants dans ce répertoire vous donnerons un exemple des choses que vous pourrez effectuer.

Voici un exemple de base, qui fonctionne, avec les options "start" et "stop".

#! /bin/sh
# /etc/init.d/blah
#
 
# Some things that run always
touch /var/lock/blah
 
# Carry out specific functions when asked to by the system
case "$1" in
  start)
    echo "Starting script blah "
    echo "Could do more here"
    ;;
  stop)
    echo "Stopping script blah"
    echo "Could do more here"
    ;;
  *)
    echo "Usage: /etc/init.d/blah {start|stop}"
    exit 1
    ;;
esac
 
exit 0

Une fois que ce fichier est sauvegardé dans le bon endroit, rendez le exécutable par la commande :

chmod 755 /etc/init.d/blah


Ensuite, il faut créer les liens symboliques afin de permettre au script d'être exécuté quand le système s'éteint, ou s'allume.

La technique la plus simple est d'exécuter la commande Debian nommée update-rc.d :

root@box:~# update-rc.d blah defaults
 Adding system startup for /etc/init.d/blah ...
  /etc/rc0.d/K20blah -> ../init.d/blah
  /etc/rc1.d/K20blah -> ../init.d/blah
  /etc/rc6.d/K20blah -> ../init.d/blah
  /etc/rc2.d/S20blah -> ../init.d/blah
  /etc/rc3.d/S20blah -> ../init.d/blah
  /etc/rc4.d/S20blah -> ../init.d/blah
  /etc/rc5.d/S20blah -> ../init.d/blah

Si à l'inverse vous désirez par la suite supprimer ce script de la séquence de démarrage, tapez :

root@box:~# update-rc.d -f  blah remove
update-rc.d: /etc/init.d/blah exists during rc.d purge (continuing)
 Removing any system startup links for /etc/init.d/blah ...
  /etc/rc0.d/K20blah
  /etc/rc1.d/K20blah
  /etc/rc2.d/S20blah
  /etc/rc3.d/S20blah
  /etc/rc4.d/S20blah
  /etc/rc5.d/S20blah
  /etc/rc6.d/K20blah

Cette commande va laisser le script lui même en place, juste supprimer les liens qui lui permettent d'être exécutés.


Vous pouvez trouver plus de détails sur cette commande par le manuel :

man update-rc.d

Liens

Internes

Scripts bash

Externes

Outils personnels