update-rc.d est une commande bien pratique puisquelle vous permet dexécuter des scripts quand le runlevel du système change (au démarrage ou à la fermeture du système par exemple). Cest notamment grâce à ça que tous vos services se lancent au démarrage et sarrêtent à lextinction du système sans que vous nayez (presque) rien à faire ;-).
Nous allons voir ici comment créer un script tout simple qui se contentera décrire dans un fichier lors du démarrage et de la fermeture du système.
Nous nallons pas voir ici lutilisation avancée de la commande update-rc.d que nous le verrons peut-être dans un prochain article.
Le script
Comme je vous lai expliqué dans lintroduction, le script que nous allons créer sera tout simple. Tout ce quil doit faire cest écrire dans un fichier au démarrage et à la fermeture du système.
Bien sûr ce script nest quun exemple, le but étant de vous expliquer le fonctionnement de base de la commande update-rc.d.
Les scripts qui doivent être lancés lors dun changement de runlevel doivent toujours se trouver dans le dossier /etc/init.d/ (question dorganisation).
Commencez donc par créer le script que je nommerais, dans un grand moment dinspiration, helloworld :
nano /etc/init.d/helloworld
Entrez-y les commandes suivantes :
#!/bin/sh
# Placez ici des commandes à exécuter à chaque appel du script
echo ‘Le script a été appelé !’ >> /root/helloworld.txt
# Le switch case ci-dessous permet de savoir si le système souhaite lancer ou arrêter le script (on le lance au démarrage et l’arrête à la fermeture du système)
case “$1” in
start)
# Placez ici les commandes à exécuter uniquement au lancement du script
echo ‘Le script a été lançé !’ >> /root/helloworld.txt
;;
stop)
# Placez ici les commandes à exécuter uniquement à l’arrêt du script
echo ‘Le script a été arrêté !’ >> /root/helloworld.txt
;;
*)
# On indique ici comment utiliser le script, c’est dans le cas où le script est appelé sans argument ou avec un argument invalide
echo ‘Usage: /etc/init.d/helloworld {start|stop}’
exit 1
;;
esac
exit 0
Lorsque le système va appeler notre script, il va lui passer soit un paramètre start soit un paramètre stop. Cest ainsi que lon pourra savoir si le système veut démarrer le script (donc que le système est en cours de démarrage) ou si il veut larrêter (donc que le système est en cours de fermeture).
Enregistrez maintenant le fichier (Ctrl + O) et fermez le (Ctrl + X).
Comme avec tous les scripts, il faut encore le rendre exécutable par le système avec la commande chmod :
chmod 755 /etc/init.d/helloworld
chmod -x /etc/init.d/helloworld
Pour que le système exécute le script automatiquement au changement de runlevel (ici démarrage et fermeture), nous devons créer des liens symboliques vers notre script dans les dossiers /etc/rcX.d correspondants. Cest à ça que nous sert la commande update-rc.d.
Nous allons ici lutiliser avec les options par défault. Cest dans un prochain article que nous verrons lutilisation avancée de cette commande.
Exécutez la commande ci-dessous pour créer les liens symboliques :
update-rc.d helloworld defaults
Il ne vous reste plus quà redémarrer le système puis à ouvrir le fichier /root/helloworld.txt pour vérifier le bon fonctionnement du script.
Si vous ne souhaitez plus que le script sexécute automatiquement, vous pouvez simplement supprimer les liens symboliques créés précédemment avec la commande suivante (seul les liens symboliques seront supprimés, le script en lui même ne sera pas touché) :
update-rc.d -f helloworld remove
Article original écrit par Leeroy pour T’as vuu ?. | Lien direct vers l’article | Réagir à l’article