Forum KNX francophone / English KNX forum

Version complète : Linknx
Vous consultez actuellement la version basse qualité d’un document. Voir la version complète avec le bon formatage.

Yannick Jupin

Bonjour

Existe il une fonctionnalité qui permet de faire un reload après une modification du fichier XML sans devoir se loguer sur le terminal

L'idéal serait une commande envoyé au demon linknx

Merci par avance

Ben

A ma connaissance, la fonctionnalité que tu décris n'existe pas
(jef2000, ton avis ?).

Par contre, tu peux ajouter, modifier et supprimer des objets xml "en
live" sans devoir éditer le fichier de config xml et redémarrer
linknx :
http://sourceforge.net/apps/mediawiki/li...ith_Linknx

Cela sous-entend que tu disposes d'une page php (par exemple) capable
d'envoyer ce type de directive à linknx.
Mais avec ce script php, tu dois également ré-écrire le fichier de
config xml de linknx, histoire qu'au prochain redémarrage du démon, tu
retrouves tes petits...

Casi

> Par contre, tu peux ajouter, modifier et supprimer des objets xml "en
> live" sans devoir éditer le fichier de config xml et redémarrer
> linknx :http://sourceforge.net/apps/mediawiki/linknx/index.php?title=Interact...

En effet je connait cette fonctionnalité mais je trouve que c'est
moins pratique que de modifier en live le fichier xml avec un bete
notepad.

Casi

Jef2000 aurait tu une réponse?

On 6 déc, 23:53, Casi <yann...@magikdo.com> wrote:
> > Par contre, tu peux ajouter, modifier et supprimer des objets xml "en
> > live" sans devoir éditer le fichier de config xml et redémarrer
> > linknx :http://sourceforge.net/apps/mediawiki/linknx/index.php?title=Interact...
>
> En effet je connait cette fonctionnalité mais je trouve que c'est
> moins pratique que de modifier en live le fichier xml avec un bete
> notepad.

jef2000

A ma connaissance, Il n'existe rien pour l'instant.
Si le but est juste de faire l'équivalent d'un arrêt complet suivi
d'un redémarrage, on pourrait imaginer une commande XML qui force
linknx à se terminer, c'est assez facile à ajouter. De cette manière,
si tu as quelque chose qui redémarre linknx automatiquement en cas de
crash (ce qui est une bonne idée dans l'absolu), il va redémarrer de
lui même. Mais imagine que tu fais une erreur dans ton fichier xml...
Comment le système doit-il réagir dans ce cas?
En fait, pour l'instant, linknx valide l'XML au fur et à mesure qu'il
se configure. Donc il faut supprimer toute la config existante avant
de commencer à lire la nouvelle, ce qui revient au même que de
redémarrer complètement linknx. Si je pouvais être capable de valider
l'XML sans exécuter, on pourrait faire une première passe sur le
fichier pour vérifier sa validité avant de tout redémarrer, mais ça
demande pas mal de boulot pour pouvoir faire cette validation.


On 15 déc, 09:58, Casi <yann...@magikdo.com> wrote:
> Jef2000 aurait tu une réponse?
>
> On 6 déc, 23:53, Casi <yann...@magikdo.com> wrote:
>
> > > Par contre, tu peux ajouter, modifier et supprimer des objets xml "en
> > > live" sans devoir éditer le fichier de config xml et redémarrer
> > > linknx :http://sourceforge.net/apps/mediawiki/linknx/index.php?title=Interact...
>
> > En effet je connait cette fonctionnalité mais je trouve que c'est
> > moins pratique que de modifier en live le fichier xml avec un bete
> > notepad.

Casi

Merci Jef de ta réponse.

Dans le cas ou le fichier XML contient une erreur il faudrais aussi
envisager un kill du processus linknx.

Effectivement il risque d'y avoir un redémarrage en boucle si je
configure quelque chose qui redémarre linknx en cas de crash.

L'idéal serait comme tu l'explique une validation du fichier avant
kill mais si celà est trop compliqué il y aurait une solution qui me
conviendrait, ecrire un fichier log dans le rep du fichier xml dans le
cas ou il y aurait une erreur dans la configuration.

Celà permettrait d'avoir une visu du problème rapidement

Casi

J'ai fait une modification dans xmlserver.cpp :

if (msgType == "kill") {
/* Commande de kill du process
}

.....

En effet je cherche la syntax pour kill le processus.

J'ai configurer un cron qui relance linknx si celui-ci n'est pas
actif.

Cordialement,
Yannick

Frédéric

On mardi 25 janvier 2011, Casi wrote:

> En effet je cherche la syntax pour kill le processus.

Pas sûr de piger : tu veux la commande shell ? Tu veux détruire quel
processus ?

--
Frédéric

Frédéric

On mercredi 26 janvier 2011, yannick@magikdo.com wrote:

> Oui la commande en C pour détruire le processus linknx (donc son propre
> processus)
>
> Style un Application.Terminate en Pascal

Ah, que le programme se termine ! C'est :

#include <stdlib.h>

void exit(int status);

Cf "man 3 exit"...

--
Frédéric