[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Script pour démarrer un daemon par défaut : un bug ?




Le 22/04/2016 17:57, Cyril Brulebois a écrit :
> Laurent COOPER <laurent.cooper@ac-grenoble.fr> (2016-04-22):
>> Avant toute chose, merci d'avoir pris le temps de me lire et de me répondre
> 
> No worries.
> 
>>> Après apt-get source dh-make dans stable, je vois un script qui contient :
>>>
>>>     # Do NOT "set -e"
>>>
>> Oui, c'est bien de ce script que je parle, qui sert de base pour la
>> fourniture du service en théorie.
> 
> Justement, en suivant cette (forte) recommandation, avoir une commande qui
> retourne non-zéro ne met pas fin au script.

Oui, pas de problème. J'ai bien un suivi cela, et je n'ai pas de set -e

Le problème, c'est que c'est la dernière commande exécutée qui retourne
1, pas par ce que il y a un set -e. Juste par ce que c'est la dernière.
J'ai fait le test avec un script minimaliste
test.sh
---------------
#!/bin/sh

. /lib/lsb/init-functions

VERBOSE=no

[ "$VERBOSE" != no ] && log_end_msg 0
---------------

Si VERBOSE est à yes, pas de problème
test.sh
echo $?
0

Si VERBOSE est à no,
test.sh
echo $?
1

C'est normal, la dernière commande exécutée a retourné 1.

Mais dans le cas d'un script appelé par invoke-rc.d, si la valeur
retournée est 1, ça plante le postinst qui lui a un set -e
> 
> Plus de détails sur set * :
>   http://pubs.opengroup.org/onlinepubs/000095399/utilities/set.html
> 
> Si tu n'as pas positionné cette option, il est possible que ton analyse
> initiale ne soit pas la bonne.
> 
>> Je ne comprends pas très bien. Je croyais que le script <paquet>.init
>> était justement un squelette pour gérer un service. J'ai lu la
>> documentation du mainteneur, le man de start-stop-daemon, et ça me
>> semblait un bon point de départ.
> 
> C'est un script d'init écrit en shell. On peut désormais décrire de
> manière plus fiable un service en quelques lignes, c'est ce qu'on
> appelle une unité systemd ; pour te faire une idée, tu peux jeter un œil
> à :
>   /lib/systemd/system/*.service
> 
> La documentation :
>   systemd.unit(5)
>   https://www.freedesktop.org/software/systemd/man/systemd.unit.html
> 
> (Je n'ai pas vu de doc spécifique sur wiki.debian.org mais je n'ai pas
> cherché longuement.)
> 
> 

Effectivement

Mais je gère des serveurs qui étaient sous squeeze, sont en wheezy et
n'utilisent pas (encore) systemd

Ceci dit, il est temps que je m'y mette pour planifier le passage à jessie.


Merci encore pour les réponses
> KiBi.
> 

Attachment: signature.asc
Description: OpenPGP digital signature


Reply to: