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

Re: Smokeping et ce <censure> de systemd



(Merci de me Cc les réponses éventuelles, je ne suis pas la liste de
près)

Bonsoir,

On 24/03/19 at 19:46 +0100, BERTRAND Joël wrote:
> 	Bonsoir à tous,
> 
> 	Je viens d'avoir un plantage sévère sur un serveur (kernel panic avec
> le dernier noyau de testing). Au redémarrage, je m'aperçois que
> smokeping ne se lance pas :
> 
> Root rayleigh:[/run] > systemctl status smokeping.service
> ● smokeping.service - Latency Logging and Graphing System
>    Loaded: loaded (/lib/systemd/system/smokeping.service; enabled;
> vendor preset: enabled)
>    Active: failed (Result: timeout) since Sun 2019-03-24 18:06:51 CET;
> 1h 32min ago
>      Docs: man:smokeping(1)
>            file:/usr/share/doc/smokeping/examples/systemd/slave_mode.conf
> 
> mars 24 18:05:21 rayleigh smokeping[11095]: All probe processes started
> successfully.
> mars 24 18:05:21 rayleigh smokeping[11097]: FPing: probing 7 targets
> with step 300 s and offset 279 s.
> mars 24 18:05:21 rayleigh systemd[1]: smokeping.service: Can't open PID
> file /run/smokeping/smokeping.pid (yet
> mars 24 18:06:51 rayleigh systemd[1]: smokeping.service: Start operation
> timed out. Terminating.
> mars 24 18:06:51 rayleigh smokeping[11095]: Got TERM signal, terminating
> child processes.
> mars 24 18:06:51 rayleigh smokeping[11096]: got TERM signal, terminating.
> mars 24 18:06:51 rayleigh smokeping[11097]: got TERM signal, terminating.
> mars 24 18:06:51 rayleigh smokeping[11095]: All child processes
> successfully terminated, exiting.
> mars 24 18:06:51 rayleigh systemd[1]: smokeping.service: Failed with
> result 'timeout'.
> mars 24 18:06:51 rayleigh systemd[1]: Failed to start Latency Logging
> and Graphing System.
> 
> 	Très bien.

Donc, systemd démarre smokeping, s'attend à ce qu'il crée un fichier
avec son PID (/run/smokeping/smokeping.pid), mais il ne le fait pas,
donc systemd décide qu'il n'a pas démarré correctement, et l'arrête.

> 	Un tour dans les logs (les vrais) donne :
> 
> Mar 24 18:05:21 rayleigh smokeping[11086]: Starting syslog logging
> Mar 24 18:05:21 rayleigh smokeping[11086]: Note: logging to syslog as
> local0/info.
> Mar 24 18:05:21 rayleigh smokeping[11086]: Daemonizing
> /usr/sbin/smokeping ...
> Mar 24 18:05:21 rayleigh smokeping[11086]: creating
> /var/run/smokeping.pid: Permission denied
> Mar 24 18:05:21 rayleigh smokeping[11095]: Smokeping version 2.007003
> successfully launched.
> Mar 24 18:05:21 rayleigh smokeping[11095]: Entering multiprocess mode.
> Mar 24 18:05:21 rayleigh smokeping[11095]: Child process 11096 started
> for probe FPing6.
> Mar 24 18:05:21 rayleigh smokeping[11096]: FPing6: probing 2 targets
> with step 300 s and offset 201 s.
> Mar 24 18:05:21 rayleigh smokeping[11095]: Child process 11097 started
> for probe FPing.
> Mar 24 18:05:21 rayleigh smokeping[11095]: All probe processes started
> successfully.
> Mar 24 18:05:21 rayleigh smokeping[11097]: FPing: probing 7 targets with
> step 300 s and offset 279 s.
> Mar 24 18:05:21 rayleigh systemd[1]: smokeping.service: Can't open PID
> file /run/smokeping/smokeping.pid (yet?) after start: No such file or
> directory
> Mar 24 18:06:51 rayleigh systemd[1]: smokeping.service: Start operation
> timed out. Terminating.
> Mar 24 18:06:51 rayleigh smokeping[11095]: Got TERM signal, terminating
> child processes.
> Mar 24 18:06:51 rayleigh smokeping[11096]: got TERM signal, terminating.
> Mar 24 18:06:51 rayleigh smokeping[11097]: got TERM signal, terminating.
> Mar 24 18:06:51 rayleigh smokeping[11095]: All child processes
> successfully terminated, exiting.
> Mar 24 18:06:51 rayleigh systemd[1]: smokeping.service: Failed with
> result 'timeout'.
> 
> 	Ce qui est intéressant, c'est le  "creating /var/run/smokeping.pid:
> Permission denied".

oui. Car du coup, ça veut dire que smokeping essaie de créer un fichier
.pid, mais pas à l'endroit attendu dans le fichier .service. Même s'il
avait réussi, systemd ne l'aurait pas trouvé et l'aurait tué.

> 	Et là, je ne comprends pas. smokeping se lance en tant que smokeping.
> Mais systemd le sait, c'est sans son fichier de configuration :
> 
> [Service]
> # It would in theory be simpler to run smokeping with the --nodaemon
> option and
> # Type=simple, but smokeping does not work properly when in "slave" mode
> with
> # --nodaemon set.
> Type=forking
> RuntimeDirectory=smokeping
> PIDFile=/run/smokeping/smokeping.pid
> User=smokeping
> Group=smokeping
> StandardError=syslog

Qu'as-tu juste après ? Dans le paquet, j'ai:
ExecStart=/usr/sbin/smokeping --pid-dir=/run/smokeping

qui demande donc à smokeping d'écrire son fichier .pid dans
/run/smokeping.

Donc, soit:
- cette ligne n'est pas présente
- cette ligne ne fonctionne pas

Lucas


Reply to: