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

Re: Jessie et habitude vis à vis de systemd



On 10/05/15 at 11:38 +0200, Wallace wrote:
> Bonjour,
> Je tâche depuis la sortie officielle de me dire que si systemd est
> fourni c'est qu'il l'est sans bug et sans régression aussi par rapport à
> mes tests pré sortie j'essaye de ne plus être négatif sauf que j'ai
> vraiment l'impression d'avoir perdu.
> 
> Exemple récent, serveur physique chez un hébergeur, installée Jessie, il
> est installé par défaut Bind pour la résolution dns, je veux changer et
> mettre Unbound à la place.
> 
> service bind9 stop
> 
> Première remarque avant on savait si un processus était bien démarré ou
> éteint là j'en sais strictement rien, mais après tout il pourrait juste
> afficher les erreurs et ne rien afficher si tout se passe bien, de plus
> mon zsh m'affiche le code retour si il est en erreur et là rien ok.
> 
> apt-get install unbound ok pas de soucis
> 
> Je télécharge la configuration localhost only que j'ai d'unbound qui
> fonctionne sur Debian 6 et 7 et je lance
> 
> service unbound start
> 
> Là toujours rien d'affiché, mon shell me dit que la commande s'est bien
> exécutée mais dans les faits unbound ne s'est pas lancé...
> Là pour moi il y a clairement régression, avant j'avais une ligne qui
> m'aurait dit erreur au démarrage, là rien et pire le code retour est bon
> ce qui fait qu'il est impossible de scripter autour des services de
> démarrage ...

En fait, ça dépend des cas.

Dans ton cas (erreur de configuration), le service est bien démarré,
mais juste après avoir démarré, il lit sa configuration, découvre
qu'elle est fausse, et sort immédiatement. Le problème, c'est que comme
le service avait bien démarré, systemctl ou 'service' avait déjà
retourné que tout s'était bien passé.

Avec sysvinit, ça fonctionnait un peu différemment: comme le service
plantait avant de forker, start-stop-daemon détectait qu'il plantait et
affichait un message d'erreur. (qui d'ailleurs, ne résulte pas en un
code de retour différent de 0)

La "bonne" solution avec systemd serait probablement que unbound
"prévienne" systemd qu'il s'est correctement initialisé. C'est possible
avec un Type=notify, et systemd-notify / sd_notify.

Mais à part ça, c'est dur de trouver une solution: combien de temps
systemd devrait-il attendre après le lancement d'un service pour
conclure que "c'est bon, il tourne depuis X secondes, on peut dire que
s'il a a pas planté jusque là, il fonctionne vraiment!" ?

> Ensuite réflex je fais un tail de /var/log/syslog pour trouver un
> message d'erreur et là rien. J'introduis volontairement une ligne non
> conforme dans le fichier de configuration pour voir et là rien aussi,
> aucun log dans syslog.
> Je suppose que c'est systemd qui a attrapé ces logs mais vu que ce n'est
> pas du fichier texte et qu'il faut passer par une commande que j'arrive
> pas encore à retenir ...
> J'ai fait la même erreur dans le fichier config sur Debian 6 et 7 j'ai
> bien mes logs et le script de démarrage me précise bien que le processus
> n'a pas démarré.

Alors ça, par contre, ça m'étonne beaucoup. J'ai testé:
J'ai modifié /etc/unbound/unbound.conf pour y ajouter une erreur.
J'ai redémarré unbound (service unbound restart).
Je n'ai pas de message d'erreur à cause du problème ci-dessus.
Mais avec 'service unbound status, qui appelle en fait 'systemctl status
unbound', j'ai bien l'extrait de log:

# service unbound status
● unbound.service - (null)
   Loaded: loaded (/etc/init.d/unbound)
  Drop-In: /run/systemd/generator/unbound.service.d
           └─50-insserv.conf-$named.conf, 50-unbound-$named.conf
   Active: active (exited) since Tue 2015-05-12 10:44:36 CEST; 1min 17s ago
  Process: 1827 ExecStop=/etc/init.d/unbound stop (code=exited, status=0/SUCCESS)
  Process: 1834 ExecStart=/etc/init.d/unbound start (code=exited, status=0/SUCCESS)

May 12 10:44:36 debian unbound-anchor[1843]: /var/lib/unbound/root.key has content
May 12 10:44:36 debian unbound-anchor[1843]: success: the anchor is ok
May 12 10:44:36 debian unbound[1834]: Starting recursive DNS server: unbound/etc/unbound/unbound....qqd'
May 12 10:44:36 debian unbound[1834]: read /etc/unbound/unbound.conf failed: 1 errors in configur...file
May 12 10:44:36 debian unbound[1834]: [1431420276] unbound[1845:0] fatal error: Could not read co...conf
May 12 10:44:36 debian unbound[1834]: failed!
Hint: Some lines were ellipsized, use -l to show in full.

J'ai les mêmes messages avec 'journalctl', et dans /var/log/syslog

Aurais-tu désactivé la redirection vers syslog, par hasard ? (ForwardToSyslog= dans /etc/systemd/journald.conf)

Lucas


Reply to: