La seule chose étrange que je constate, c’est dans le log de jmqttd :
0000|[2022-07-24 19:52:54,956][INFO] Main MainThread set_log_level() : New log level set to: DEBUG
0001|[2022-07-24 19:52:56,789][DEBUG] JMsg.Snd SockOut _loopSnd() : Sending 1 msgs
0002|[2022-07-24 19:52:56,834][DEBUG] JMsg.Snd SockOut send() : Sent TO Jeedom: [{'cmd': 'hb'}]
0003|[2022-07-24 19:52:57,072][DEBUG] root MainThread signal_handler() : Signal 15 caught, exiting...
0004|[2022-07-24 19:52:57,163][INFO] Main MainThread shutdown() : Stop jMQTT python daemon
Le démon envoie bien un heartbeat à Jeedom (Sent TO Jeedom: [{'cmd': 'hb'}
),
mais Jeedom le tue (Signal 15 caught
).
Il me faudrait stp les logs jMQTT
et jMQTTd
au moment du problème,
la source sera probablement dans le fichier jMQTT
.
Merci
EDIT: @kristobal, je pense malgré tout avoir une idée de la source.
Si le démon se fait tuer aussi vite, alors même qu’il n’est pas lancé et n’a pas pu se signaler, c’est probablement par ce que Jeedom est déjà en timeout… J’ai traité ça coté démon, pas coté Jeedom.
Peux-tu essayer de modifier le fichier jMQTT/core/class/jMQTT.class.php
, vers la ligne 1192
, remplace ça :
self::logger('info', __('Lancement du démon jMQTT', __FILE__));
exec($cmd . ' >> ' . log::getPathToLog(__CLASS__.'d') . ' 2>&1 &');
// Wait up to 10 seconds for daemon start
for ($i = 1; $i <= 40; $i++) {
par ça :
self::logger('info', __('Lancement du démon jMQTT', __FILE__));
exec($cmd . ' >> ' . log::getPathToLog(__CLASS__.'d') . ' 2>&1 &');
cache::set('jMQTT::'.self::CACHE_DAEMON_LAST_RCV, time());
cache::set('jMQTT::'.self::CACHE_DAEMON_LAST_SND, time());
// Wait up to 10 seconds for daemon start
for ($i = 1; $i <= 40; $i++) {
Bad