Salut
Je voudrais que mon démon de mon plugin eufy redémarre automatiquement quand une erreur est détectée.
Il démarre bien en auto mais il ne redémarre pas, je n’arrive pas a comprendre pourquoi.
Quand je détecte une coupure j’appelle deamon_stop(). Par le passé il me semblait que c’était suffisant. Que faut-il faire pour que ca soit le cas?
Voici le code (simplifié) du deamon_info():
public static function deamon_info() {
$rc = array();
$rc['log'] = __CLASS__;
$rc['state'] = 'nok';
$pid_file = jeedom::getTmpFolder(__CLASS__) . '/deamon.pid';
if (file_exists($pid_file)) {
if (@posix_getsid(trim(file_get_contents($pid_file))))
$rc['state'] = 'ok';
else
shell_exec(system::getCmdSudo() . 'rm -rf ' . $pid_file . ' 2>&1 > /dev/null');
}
// VERIFS DIVERSES
log::add(__CLASS__, 'debug', '[' . __FUNCTION__ . '] state: '. $rc['state'] . ' launchable: ' . $rc['launchable']);
return $rc;
}
celui du deamon_stop():
public static function deamon_stop() {
$pid_file = jeedom::getTmpFolder(__CLASS__) . '/deamon.pid'; // ne pas modifier
if (file_exists($pid_file)) {
$pid = intval(trim(file_get_contents($pid_file)));
system::kill($pid);
}
system::kill('eufyd.py');
// RESETS DIVERS
while ($i < 5) {
$deamon_info = self::deamon_info();
if ($deamon_info['state'] == 'nok')
break;
sleep(1);
$i++;
}
}
et un extrait de la log:
0014|[2026-05-25 20:29:50] INFO Lancement du démon eufyd
0015|[2026-05-25 20:29:50] DEBUG debian OS version: 12
0016|[2026-05-25 20:29:50] DEBUG Py executable: /var/www/html/core/class/../../plugins/eufy/resources/python_venv/bin/python3
0017|[2026-05-25 20:29:50] DEBUG eufy-security-ws schema version: 21
0018|[2026-05-25 20:29:50] DEBUG [deamon_info] state: nok launchable: ok
0019|[2026-05-25 20:29:50] DEBUG [handleResult] msg received: {"type":"result","success":true,"result":{"state":{"driver":{"version":"3.8.0","connected":true,"pushConnected":true},"stations":
0020|[2026-05-25 20:29:50] DEBUG >>> State message received
0021|[2026-05-25 20:29:50] DEBUG online status: 1
0022|[2026-05-25 20:29:50] INFO [setDevicesList]
0025|[2026-05-25 20:29:51] DEBUG [deamon_info] state: ok launchable: ok
0026|[2026-05-25 20:29:54] DEBUG [refreshDevice]: Base #T8010N232XXXX
<<<< ARRET DU DEMON >>>
0066|[2026-05-25 20:30:07] DEBUG [handleEvent] msg received: {"source":"driver","event":"push disconnected"}
0067|[2026-05-25 20:30:07] DEBUG >>> driver message received: push disconnected
0068|[2026-05-25 20:30:07] DEBUG online status:
0070|[2026-05-25 20:30:07] DEBUG [deamon_info] state: ok launchable: ok
0071|[2026-05-25 20:30:08] DEBUG [deamon_info] state: nok launchable: ok
Merci pour votre aide