Re: Debian 7 et scripts de démarrage

Top Page

Reply to this message
Author: Fernando
Date:  
To: guilde
Subject: Re: Debian 7 et scripts de démarrage
Bonjour,

Le 21/11/2014 15:45, Frédéric a écrit :
> […]
> Par exemple, en plus du script dans /etc/init.d, il faut créer un
> fichier /lib/systemd/system/xxx.service. Mais du coup, je ne comprend pas
> où mettre les arguments, à passer, les variable d'environnement, etc...
> […]
> http://blog.scphillips.com/2013/07/getting-a-python-script-to-run-in-the-background-as-a-service-on-boot/
> […]

Il y a bien des façons de démarrer un système à base de noyau Linux, comme indiqué dans le billet de blog ci-dessus:
«
Debian Wheezy uses the old Sys V init system which means that these scripts are run according to symbolic links in the /etc/rc.x directories.
»
Traduction toute personnelle:
«
Debian Wheezy utilise l'ancien système Sys V init, cela signifique que ces scripts [de démarrage] sont lancés en fonction des liens symboliques présents dans les répertoires /etc/rc.x
»

Du coup, je ne comprends pas pourquoi tu veux faire un fichier dans /lib/systemd/… ?

Le 21/11/2014 19:38, Marc a écrit :
> Le 21/11/2014 17:57, Frédéric a écrit :
>> […]
>> J'ai commencé par écrire un script en suivant la doc que j'ai citée,
>> dans /etc/init.d
>>
>> Lorsque je lance ce script, ça me dit qu'il manque un fichier .service.
>> Après quelques recherches, je vois qu'il faut créer ça
>> dans /lib/systemd/system. Ce que je fait.
>>
>> Mais je m'aperçois ensuite que le premier script ne sert finalement à
>> rien ! Donc le mécanisme dans /etc/init.d (c'est quoi, d'ailleurs ?)
>> renvoie sur systemd...
> […]
> après avoir installé ton script dans /etc/init.d, as-tu tapé une
> commande commençant par update-rc.d ? qui normalement crée les liens
> symboliques de démarrage et d'arrêt, et peut-être plus aujourd'hui pour
> la compatibilité avec les deux remplaçants du démarrage SystemV
> […]

Comme l'indique Marc, une fois ton script de démarrage mis en place dans /etc/init.d/ (si possible en respectant la /Linux Standard Base/ (LSB [1]), il te faut créer des liens symboliques pour que le système le lance (ou pas). La commande update-rc.d sert à cela. Comme toute commande (bien codée), le manuel est disponible avec la commande man update-rc.d, en voici extraite la description: «
[…]
DESCRIPTION
       update-rc.d met à jour  automatiquement  les  liens  vers  les  scripts
       d'initialisation  de  type  Système V  dont  le  nom  est /etc/rcrunle‐
       vel.d/NNnom vers les scripts /etc/init.d/name. Ils sont lancés par init
       quand  on  change  de niveau de fonctionnement et ils sont généralement
       utilisés pour démarrer ou arrêter des services  tels  que  les  démons.
       runlevel  est  l'un  des  niveaux de fonctionnement autorisés par init,
       0123456789S, et NN est le code à deux chiffres utilisé  par  init  pour
       décider de l'ordre d'exécution des scripts.
»


Si ton script de démarrage (dans /etc/init.d) respecte la LSB, alors un "simple" « update-rc.d monscsriptdedemarrage default » va faire les liens dans les /etc/rc*.d/*monscsriptdedemarrage correspondants ! :)


Tu pourra trouver plus d'informations générales dans le livre de l'administrateur Debian (version Wheezy), chapitre 9.1 Démarrage du système: <http://debian-handbook.info/browse/fr-FR/stable/unix-services.html#sect.system-boot>. Le démarrage du système est un sujet vaste sur lequel plusieurs livres entiers sont dédiés, mais il y a là la plupart des pistes de recherches et d'approfondissements à faire en fonction de ses propres connaissances.
Voici le schéma utilisé dans le chapitre(qui résume *toute* la séquence de démarrage de Debian Wheezy, pas seulement init): <http://debian-handbook.info/browse/fr-FR/stable/images/startup.png>.


[1] La LSB est un effort collectif pour avoir une définition et une implémentation communes de tous les systèmes d'exploitation à base de noyau Linux. On peut en lire plus sur <http://refspecs.linuxfoundation.org/lsb.shtml>. La partie démarrage du système est sur <http://refspecs.linuxfoundation.org/LSB_4.1.0/LSB-Core-generic/LSB-Core-generic/tocsysinit.html>.

Le wiki du projet Debian contient une page pour transformer un script de démarrage "simple" en script respectant la LSB: <https://wiki.debian.org/LSBInitScripts>.




Enfin, l'actuelle campagne marketing et sexiste de Mattel™©® (:grr: montrant comment Barbie®©™ est cruche devant un ordinateur et comment [les garçons] Steven et Brian sont indispensables pour elle et son ordinateur >_<) a été joliment détournée pour sortir de ce /flamewar/ systemd/whatever :
<http://blog.halon.org.uk/2014/11/barbie-the-debian-developer/>. ^_^
J'aime bien la chanson dans les commentaires aussi. <3

@+
Fernando
PS: dernière minute: Mattel™ a enlevé son "livre" de la vente chez Amazon ! \o/
Pour ceux qui avaient loupé ce /buzz/ , un billet de blog qui analyse ce "livre": <http://pamie.com/2014/11/barbie-fucks-it-up-again/>. Le détournement est carrément meilleur, et de loin ! :)