Plugin knx, deamon qui redémarre

Oui, effectué hier, mais j’avais laissé deux flags initialisation cochés, et comme j’ai eu l’info je les ai corrigés…
je touche pas au log et je laisse tourner.
Merci
Thierry

Sauf que dans les log tu ne verra rien puisqu’ils sont effacé au demarrage du démon

Oui je sais, c’est les premières info (négative) que j’ai eu au redémarrage (log Info créé par toi ?), donc j’ai regardé et corrigé ces deux flags.
je viens de le faire


:slight_smile:

bon, je viens de faire les dernières mises a jour mais je rencontre encore des redémarrages.

est ce qu’il est possible de copier les logs du deamon dans un fichier accessible depuis l’interface de configuration du plugin? et perso, le reset des logs du plugin a chaque démarrage du deamon devrait être supprimé, il y a déjà une limite de logs paramétré.

je comprends pas pourquoi le deamon plante…

Dès que le deamon plante , tu récupère rapidement le log dans la partie analyse, et tu as normalement les infos avant redémarrage qui sont conservées, j’ai repéré une erreur comme cela, et à prioris, je n’ai pas eu de redémarrage non volontaire.

le problème c’est que dès que le deamon redémarre (5 min apres) les logs sont plus la. et le plantage est aléatoire … d’ou la demande de copie du fichier log pour éviter qu’il soit supprimé. je vais essayer un truc :slight_smile:

Avec le plugin Jeelog, tu peut enregistrer les logs en temps réel…
Si tu désactive la gestion automatique, il ne va pas redémarrer et ton log pas effacé ?
Je viens à l’instant d’avoir un truc pas courant : Erreur sur la fonction cron15 du plugin : connect failed

je viens de modifier la config pour qu’un nouveau fichier log soit créé chaque fois que le deamon redémarre:
dans le fichier eibd\core\class\eibd.class.php a partir de la ligne 734

      	$datetmp = date("Y-m-d-H-i-s");
		exec("sudo touch /var/log/knx-".$datetmp.".log");
		exec("sudo chmod 777 /var/log/knx-".$datetmp.".log");
		$cmd = '';
		switch(config::byKey('KnxSoft', 'eibd')){
			case 'knxd':
            			$clientAddrs = explode('.',config::byKey('EibdGad', 'eibd'));
            			$clientAddrs[count($clientAddrs)-1] +=1;
				$cmd .= 'knxd --daemon=/var/log/knx-'.$datetmp.'.log --pid-file=/var/run/knx.pid';
				if(config::byKey("log::level::eibd")[1000] != 1)
					$cmd .= ' -t1023';
				$cmd .= ' --eibaddr='.config::byKey('EibdGad', 'eibd').' --client-addrs='.implode('.',$clientAddrs).':'.config::byKey('EibdNbAddr', 'eibd');
           		break;
			case 'eibd':
				$cmd .= '/usr/local/bin/eibd --daemon=/var/log/knx-'.$datetmp.'.log --pid-file=/var/run/knx.pid';
				if(config::byKey("log::level::eibd")[1000] != 1)
					$cmd .= ' -t1023';
				$cmd .= ' --eibaddr='.config::byKey('EibdGad', 'eibd');			
			break;
		}
		if(config::byKey('KnxSoft', 'eibd') == 'knxd' && config::byKey('ServeurName', 'eibd') !='')
			$cmd .= ' --Name='.config::byKey('ServeurName', 'eibd');
		if(config::byKey('Discovery', 'eibd'))
				$cmd .= ' -D';
		if(config::byKey('Routing', 'eibd'))
				$cmd .= ' -R';
		if(config::byKey('Tunnelling', 'eibd'))
				$cmd .= ' -T';
		if(config::byKey('Discovery', 'eibd') || config::byKey('Routing', 'eibd') || config::byKey('Tunnelling', 'eibd'))
				$cmd .= ' -S';
		$cmd .= ' --listen-tcp='.config::byKey('EibdPort', 'eibd');
		if(config::byKey('KnxSoft', 'eibd') == 'knxd')
			$cmd .= ' -b ';	
		if($cmd != ''){
			if(config::byKey('TypeKNXgateway', 'eibd') == 'usb'){
				$USBaddr = explode(':',config::byKey('KNXgateway', 'eibd'));
				$cmdUSB = sprintf("/dev/bus/usb/%'.03d/%'.03d",$USBaddr[0],$USBaddr[1]);
				log::add('eibd', 'debug', "Droit d'acces sur la passerelle USB " . $cmdUSB);
				exec("sudo chmod 777 ".$cmdUSB. ' >> ' . log::getPathToLog('eibd') . ' 2>&1');
			}
			$cmd .= ' '. config::byKey('TypeKNXgateway', 'eibd') . ':' . config::byKey('KNXgateway', 'eibd');
			if(isset($cmd)){
				$cmd .= ' >> /var/log/knx-'.$datetmp.'.log 2>&1';
				log::add('eibd','info', '[Start] '.$cmd);
				exec($cmd);
				cache::set('eibd::demonState',true, 0);
			}
		}

comme cela, j’aurais les logs du deamon

commande lancée:

[Start] knxd --daemon=/var/log/knx-2021-06-09-15-00-05.log --pid-file=/var/run/knx.pid -t1023 --eibaddr=0.0.1 --client-addrs=0.0.2:3 --Name=Jeedom -D -T -S --listen-tcp=6720 -b  ipt:192.168.3.210:3671 >> /var/log/knx-2021-06-09-15-00-05.log 2>&1
[2021-06-09 15:00:05][DEBUG] : Lancement du Bus Monitor

reste plus qu’a attendre

Le fichier de log que tu as modifier est celui de knxd et pas celui du plugin
Pour les plugin c’est jeedom qui se charge de la gestion
Il faut que tu fasse une copie plutot dans la fonction deamon_start avant la suppression

Edit

A tu reinstallé les dependances

Moi et le code…, j’ai connu que la bande perforée et les roues codeuse pour dialoguer avec les bécanes :rofl:

en fait je cherche a savoir pourquoi le deamon tombe. et je suis pas tout le temps devant mon PC :slight_smile:

bon, j’ai cela a la fin du log :

Jeedom: Layer 6 [12:B.ipt/Conn         926.403] is OK
Jeedom: Layer 6 [ 4:server/Server      926.403] is OK
Jeedom: Layer 6 [22:A.tcp/ConnS        926.403] is OK
Jeedom: Layer 6 [ 8:A.tcp/inet         926.403] is OK
Jeedom: Layer 6 [ 1:main               926.403] OK
Jeedom: Layer 6 [ 2:main/L             926.403] OK L
Jeedom: Layer 0 [13:B.ipt/ipt          926.403] Send(010): 06 10 04 21 00 0A 04 B6 2F 00
Jeedom: Layer 0 [13:B.ipt/ipt          927.403] Recv(025): 06 10 04 20 00 19 04 B6 2F 00 29 00 BC E0 11 2C 0A 0C 05 00 80 00 00 00 00
Jeedom: Layer 1 [13:B.ipt/ipt          927.403] Send(004): 04 B6 2F 00
Jeedom: Layer 0 [13:B.ipt/ipt          927.403] Send(010): 06 10 04 21 00 0A 04 B6 2F 00
Jeedom: Layer 0 [13:B.ipt/ipt          928.404] Recv(016): 06 10 02 09 00 10 B6 B6 08 01 C0 A8 03 D2 0E 57
Jeedom: Layer 1 [13:B.ipt/ipt          928.404] SendDis(002): B6 00
Jeedom: Layer 1 [13:B.ipt/ipt          928.404] Send(002): B6 00
Jeedom: Layer 0 [13:B.ipt/ipt          928.404] Send(008): 06 10 02 0A 00 08 B6 00
Jeedom: Layer 1 [13:B.ipt/ipt          928.504] Connect timed out
Jeedom: Layer 0 [13:B.ipt/ipt          928.505] Close D
Jeedom: Layer 5 [12:B.ipt/Conn         928.505] up => error
Jeedom: Layer 4 [12:B.ipt/Conn         928.505] link state changed: error
Jeedom: Layer 4 [ 1:main               928.505] check start
Jeedom: Layer 4 [ 1:main               928.505] check end: want_up 1 some 1>1 all 1>0, going 0 up 2 down 1
Jeedom: F00000105: [12:B.ipt] Link down, terminating
Jeedom: Layer 4 [ 1:main               928.505] trigger Going down
Jeedom: Layer 4 [12:B.ipt/Conn         928.505] R Stopping
Jeedom: Layer 5 [12:B.ipt/Conn         928.505] error => >down
Jeedom: Layer 4 [12:B.ipt/Conn         928.505] link state changed: error
Jeedom: Layer 4 [ 4:server/Server      928.505] R Stopping
Jeedom: Layer 5 [ 4:server/Server      928.505] up => >down
Jeedom: Layer 8 [18:/driver            928.505] CloseD
Jeedom: Layer 0 [ 4:server/Server      928.505] Close D
Jeedom: Layer 5 [ 4:server/Server      928.505] >down => down
Jeedom: Layer 4 [ 4:server/Server      928.505] link state changed: down
Jeedom: Layer 4 [ 4:server/Server      928.505] link state changed: down
Jeedom: Layer 4 [22:A.tcp/ConnS        928.505] R Stopping
Jeedom: Layer 5 [22:A.tcp/ConnS        928.505] up => >down
Jeedom: Layer 5 [22:A.tcp/ConnS        928.505] L Stopping
Jeedom: Layer 5 [22:A.tcp/ConnS        928.505] >down => down
Jeedom: Layer 4 [22:A.tcp/ConnS        928.505] link state changed: down
Jeedom: Layer 4 [22:A.tcp/ConnS        928.505] link state changed: down
Jeedom: Layer 4 [ 8:A.tcp/inet         928.505] R Stopping
Jeedom: Layer 5 [ 8:A.tcp/inet         928.505] up => >down
Jeedom: Layer 8 [ 8:A.tcp/inet         928.505] StopServer
Jeedom: Layer 8 [20:A.tcp/CConn        928.505] ClientConnection 0.0.2 closing
Jeedom: Layer 3 [ 1:main               928.505] Release 0.0.2
Jeedom: Layer 3 [22:A.tcp/ConnS        928.505] unregisterLink: A.tcp_22
Jeedom: Layer 8 [20:A.tcp/CConn        928.505] Exiting
Jeedom: Layer 7 [20:A.tcp/CConn        928.505] CloseGroupSocket
Jeedom: Layer 5 [ 8:A.tcp/inet         928.505] >down => down
Jeedom: Layer 4 [ 8:A.tcp/inet         928.505] link state changed: down
Jeedom: Layer 4 [ 8:A.tcp/inet         928.505] link state changed: down
Jeedom: Layer 4 [ 1:main               928.505] check start
Jeedom: Layer 4 [23:A.tcp/LineDr       928.505] CloseGroupSocket
Jeedom: Layer 4 [ 4:server/Server      928.505] is down
Jeedom: Layer 4 [ 8:A.tcp/inet         928.505] is down
Jeedom: Layer 4 [ 1:main               928.505] check end: want_up 0 some 1>0 all 0>0, going 0 up 0 down 3
Jeedom: Layer 4 [ 1:main               928.505] down
Jeedom: Layer 4 [ 1:main               928.505] deleting
Jeedom: Layer 2 [13:B.ipt/ipt          928.505] Close A
Jeedom: Layer 8 [ 4:server/Server      928.505] Close E
Jeedom: Layer 4 [ 1:main               928.505] deleted.

je vois un connect time out mais je suis pas capable de comprendre la cause

pour etre sur, je vais redémarrer ma passerelle

Je ne suis pas sur qu’avec les log de knxd on puisse trouvé le probleme du demon
Il faut les log du plugin