{"id":118,"date":"2009-07-15T05:12:00","date_gmt":"2009-07-15T05:12:00","guid":{"rendered":"http:\/\/gistlabs.net\/weblogs\/?p=118"},"modified":"2012-10-22T22:33:50","modified_gmt":"2012-10-22T18:33:50","slug":"utilisation-de-update-rcd-sous-debian-ou-comment-lancer-des-scripts-au-demarrage-du-systeme","status":"publish","type":"post","link":"https:\/\/www.gistlabs.net\/weblogs\/utilisation-de-update-rcd-sous-debian-ou-comment-lancer-des-scripts-au-demarrage-du-systeme\/","title":{"rendered":"Utilisation de update rcd sous debian ou comment lancer des scripts au demarrage du systeme"},"content":{"rendered":"<p><a href=\"https:\/\/www.gistlabs.net\/weblogs\/wp-content\/uploads\/2012\/10\/20090715-utilisation-update-rcd-sous-debian-lancer-scr-L-1.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-249\" title=\"20090715-utilisation-update-rcd-sous-debian-lancer-scr-L-1\" src=\"https:\/\/www.gistlabs.net\/weblogs\/wp-content\/uploads\/2012\/10\/20090715-utilisation-update-rcd-sous-debian-lancer-scr-L-1.png\" alt=\"\" width=\"640\" height=\"100\" srcset=\"https:\/\/www.gistlabs.net\/weblogs\/wp-content\/uploads\/2012\/10\/20090715-utilisation-update-rcd-sous-debian-lancer-scr-L-1.png 640w, https:\/\/www.gistlabs.net\/weblogs\/wp-content\/uploads\/2012\/10\/20090715-utilisation-update-rcd-sous-debian-lancer-scr-L-1-300x46.png 300w\" sizes=\"auto, (max-width: 640px) 100vw, 640px\" \/><\/a>update-rc.d est une commande bien pratique puisqu\u0092elle vous permet d\u0092ex\u00e9cuter des scripts quand le runlevel du syst\u00e8me change (au d\u00e9marrage ou \u00e0 la fermeture du syst\u00e8me par exemple). C\u0092est notamment gr\u00e2ce \u00e0 \u00e7a que tous vos services se lancent au d\u00e9marrage et s\u0092arr\u00eatent \u00e0 l\u0092extinction du syst\u00e8me sans que vous n\u0092ayez (presque) rien \u00e0 faire ;-).<\/p>\n<p><!--more--><br \/>\nNous allons voir ici comment cr\u00e9er un script tout simple qui se contentera d\u0092\u00e9crire dans un fichier lors du d\u00e9marrage et de la fermeture du syst\u00e8me.<\/p>\n<p>Nous n\u0092allons pas voir ici l\u0092utilisation avanc\u00e9e de la commande update-rc.d que nous le verrons peut-\u00eatre dans un prochain article.<\/p>\n<p><strong>Le script<\/strong><\/p>\n<p>Comme je vous l\u0092ai expliqu\u00e9 dans l\u0092introduction, le script que nous allons cr\u00e9er sera tout simple. Tout ce qu\u0092il doit faire c\u0092est \u00e9crire dans un fichier au d\u00e9marrage et \u00e0 la fermeture du syst\u00e8me.<\/p>\n<p>Bien s\u00fbr ce script n\u0092est qu\u0092un exemple, le but \u00e9tant de vous expliquer le fonctionnement de base de la commande update-rc.d.<\/p>\n<p>Les scripts qui doivent \u00eatre lanc\u00e9s lors d\u0092un changement de runlevel doivent toujours se trouver dans le dossier \/etc\/init.d\/ (question d\u0092organisation).<\/p>\n<p>Commencez donc par cr\u00e9er le script que je nommerais, dans un grand moment d\u0092inspiration, helloworld :<\/p>\n<p>nano \/etc\/init.d\/helloworld<\/p>\n<p>Entrez-y les commandes suivantes :<\/p>\n<p>#!\/bin\/sh<\/p>\n<p># Placez ici des commandes \u00e0 ex\u00e9cuter \u00e0 chaque appel du script<br \/>\necho &#8216;Le script a \u00e9t\u00e9 appel\u00e9 !&#8217; &gt;&gt; \/root\/helloworld.txt<\/p>\n<p># Le switch case ci-dessous permet de savoir si le syst\u00e8me souhaite lancer ou arr\u00eater le script (on le lance au d\u00e9marrage et l&#8217;arr\u00eate \u00e0 la fermeture du syst\u00e8me)<br \/>\ncase &#8220;$1&#8221; in<br \/>\nstart)<br \/>\n# Placez ici les commandes \u00e0 ex\u00e9cuter uniquement au lancement du script<br \/>\necho &#8216;Le script a \u00e9t\u00e9 lan\u00e7\u00e9 !&#8217; &gt;&gt; \/root\/helloworld.txt<br \/>\n;;<\/p>\n<p>stop)<br \/>\n# Placez ici les commandes \u00e0 ex\u00e9cuter uniquement \u00e0 l&#8217;arr\u00eat du script<br \/>\necho &#8216;Le script a \u00e9t\u00e9 arr\u00eat\u00e9 !&#8217; &gt;&gt; \/root\/helloworld.txt<br \/>\n;;<\/p>\n<p>*)<br \/>\n# On indique ici comment utiliser le script, c&#8217;est dans le cas o\u00f9 le script est appel\u00e9 sans argument ou avec un argument invalide<br \/>\necho &#8216;Usage: \/etc\/init.d\/helloworld {start|stop}&#8217;<br \/>\nexit 1<br \/>\n;;<br \/>\nesac<\/p>\n<p>exit 0<\/p>\n<p>Lorsque le syst\u00e8me va appeler notre script, il va lui passer soit un param\u00e8tre start soit un param\u00e8tre stop. C\u0092est ainsi que l\u0092on pourra savoir si le syst\u00e8me veut d\u00e9marrer le script (donc que le syst\u00e8me est en cours de d\u00e9marrage) ou si il veut l\u0092arr\u00eater (donc que le syst\u00e8me est en cours de fermeture).<\/p>\n<p>Enregistrez maintenant le fichier (Ctrl + O) et fermez le (Ctrl + X).<\/p>\n<p>Comme avec tous les scripts, il faut encore le rendre ex\u00e9cutable par le syst\u00e8me avec la commande chmod :<\/p>\n<p>chmod 755 \/etc\/init.d\/helloworld<br \/>\nchmod -x \/etc\/init.d\/helloworld<\/p>\n<p>Pour que le syst\u00e8me ex\u00e9cute le script automatiquement au changement de runlevel (ici d\u00e9marrage et fermeture), nous devons cr\u00e9er des liens symboliques vers notre script dans les dossiers \/etc\/rcX.d correspondants. C\u0092est \u00e0 \u00e7a que nous sert la commande update-rc.d.<\/p>\n<p>Nous allons ici l\u0092utiliser avec les options par d\u00e9fault. C\u0092est dans un prochain article que nous verrons l\u0092utilisation avanc\u00e9e de cette commande.<\/p>\n<p>Ex\u00e9cutez la commande ci-dessous pour cr\u00e9er les liens symboliques :<\/p>\n<p>update-rc.d helloworld defaults<\/p>\n<p>Il ne vous reste plus qu\u0092\u00e0 red\u00e9marrer le syst\u00e8me puis \u00e0 ouvrir le fichier \/root\/helloworld.txt pour v\u00e9rifier le bon fonctionnement du script.<\/p>\n<p>Si vous ne souhaitez plus que le script s\u0092ex\u00e9cute automatiquement, vous pouvez simplement supprimer les liens symboliques cr\u00e9\u00e9s pr\u00e9c\u00e9demment avec la commande suivante (seul les liens symboliques seront supprim\u00e9s, le script en lui m\u00eame ne sera pas touch\u00e9) :<\/p>\n<p>update-rc.d -f helloworld remove<\/p>\n<p>Article original \u00e9crit par Leeroy pour <a href=\"http:\/\/www.tavuu.net\/\">T&#8217;as vuu ?.<\/a> | <a href=\"http:\/\/www.tavuu.net\/linux\/utilisation-de-update-rcd-sous-debian-ou-comment-lancer-des-scripts-au-demarrage-du-systeme\/\">Lien direct vers l&#8217;article<\/a> | <a href=\"http:\/\/www.tavuu.net\/linux\/utilisation-de-update-rcd-sous-debian-ou-comment-lancer-des-scripts-au-demarrage-du-systeme\/#respond\">R\u00e9agir \u00e0 l&#8217;article<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>update-rc.d est une commande bien pratique puisqu\u0092elle vous permet d\u0092ex\u00e9cuter des scripts quand le runlevel du syst\u00e8me change (au d\u00e9marrage ou \u00e0 la fermeture du syst\u00e8me par exemple). C\u0092est notamment gr\u00e2ce \u00e0 \u00e7a que tous vos services se lancent au d\u00e9marrage et s\u0092arr\u00eatent \u00e0 l\u0092extinction du syst\u00e8me sans que vous n\u0092ayez (presque) rien \u00e0 faire &hellip; <\/p>\n<p><a class=\"more-link btn\" href=\"https:\/\/www.gistlabs.net\/weblogs\/utilisation-de-update-rcd-sous-debian-ou-comment-lancer-des-scripts-au-demarrage-du-systeme\/\">Continue reading<\/a><\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[13],"tags":[],"class_list":["post-118","post","type-post","status-publish","format-standard","hentry","category-unix","item-wrap"],"_links":{"self":[{"href":"https:\/\/www.gistlabs.net\/weblogs\/wp-json\/wp\/v2\/posts\/118","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.gistlabs.net\/weblogs\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.gistlabs.net\/weblogs\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.gistlabs.net\/weblogs\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.gistlabs.net\/weblogs\/wp-json\/wp\/v2\/comments?post=118"}],"version-history":[{"count":3,"href":"https:\/\/www.gistlabs.net\/weblogs\/wp-json\/wp\/v2\/posts\/118\/revisions"}],"predecessor-version":[{"id":398,"href":"https:\/\/www.gistlabs.net\/weblogs\/wp-json\/wp\/v2\/posts\/118\/revisions\/398"}],"wp:attachment":[{"href":"https:\/\/www.gistlabs.net\/weblogs\/wp-json\/wp\/v2\/media?parent=118"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.gistlabs.net\/weblogs\/wp-json\/wp\/v2\/categories?post=118"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.gistlabs.net\/weblogs\/wp-json\/wp\/v2\/tags?post=118"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}