Lancer automatiquement Duniter au démarrage

Il vaut mieux éviter de lancer duniter avec sudo, essaie plutôt de te logger sous le user duniter (su - duniter) et de lancer les commandes directement à partir de ce user-là et sans sudo. :slight_smile:

Après des heures d’investigation, j’ai trouvé d’où vient le problème :

Par défaut les options --home et --mdb de la commande sync valent respectivement $HOME/.config/duniter/ et duniter_default.
Lorsqu’on installe duniter à partir du .deb, l’utilisateur duniter est créé et son $HOME vaut /var/lib/duniter.
Donc si on fait un sync avec l’utilisateur duniter sans préciser l’option –home, duniter créera les fichiers dans /var/lib/duniter/.config/duniter/duniter_default

Or, de base, dans la configuration du service, le service se lance avec /usr/bin/duniter {DUNITER_WEB}start --home {DUNITER_HOME} --mdb ${DUNITER_DATA} $DUNITER_OPTS
Comme Environment=“DUNITER_HOME=/var/lib/duniter” et Environment=“DUNITER_DATA=duniter_default”,
duniter cherchera les fichiers dans /var/lib/duniter/duniter_default

Donc, soit il faut modifier, à la source dans le package duniter, le fichier /lib/systemd/system/duniter.service pour modifier les valeurs par défaut de DUNITER_HOME et DUNITER_DATA.
(en l’occurence, je pense que Environment=“DUNITER_HOME=/var/lib/duniter/.config/duniter”
devrait suffire)
Soit il faut améliorer la doc en précisant ces points :wink:

Je te conseille de ne pas modifier le fichier livré dans /lib/systemd/system, mais plutôt d’en créer un autre…

Oui merci, c’est ce que j’avais fait déjà pour lancer le service en mode webstart :wink:

2 Likes

@sveyret il faut que tu modifie ça dans ton script, car en effet par défaut Duniter créer les données dans $HOME/.config/duniter/ donc il faut que tu rajoute ce .config/duniter dans tons script :wink:

La doc précise déjà une partie de ces points. Il serait bien, par contre, de rajouter un paragraphe pour préciser les paramètres à utiliser pour --home pour le cas où l’on veut lancer des commandes manuelles comme la synchronisation.

La doc précise les options --home et --mdb de la commande sync…Mais à aucun endroit dans “activez-le-demarrage-automatique” il n’est précisé qu’il ne faut pas utiliser le --home par défaut…Si, comme moi, qqun fait tout par défaut, et bah ça marche pas, il comprend pas pkoi et il cherche presque 8h d’où vient le pb :wink:

Tu crois ? Ça n’a pas tellement de sens (à mon avis) de créer un répertoire caché dans le cas du fonctionnement en mode service. Les fichiers sont dans /var/lib qui est le défaut pour les bases de données sous Linux.

Dans le cadre d’un fonctionnement normal, il faut par contre que la base de données se trouve dans .config pour ne pas polluer le répertoire d’un compte qui sert à plein de choses.

Oui mais cela rend l’usage de la feature “lancement automatique au démarrage” plsu user friendly, tu voit bien paidge a perdu plusieurs heures juste a cause de ça, et même si on l’écris dans la doc y en a plein d’autres qui galèreront…

1 Like

A mon avis, y’a juste à mettre à jour la ligne :
Environment="DUNITER_HOME=/var/lib/duniter"
Par :
Environment="DUNITER_HOME=/var/lib/duniter/.config/duniter"
Et hop, ça m’aurait fait gagner une journée de boulot :wink:

1 Like

Malheureusement, je pêche de ne jamais avoir lancé un nœud Duniter. Du coup, il y a certaines choses que je ne vois pas (encore). Enfin, normalement, ce problème devrait bientôt être réglé.

OK, je modifierai cela, alors.

Quelle idée, il suffisait de poser la question ! :stuck_out_tongue_winking_eye:

Oui, c’est bien cela. Je ferai une MR dès que possible. Désolé pour le temps perdu ! :smile:

2 Likes

Sinon, pour que ça marche à tous les coups et que ça reste propre quand même, est-ce que vous croyez que ça poserait des problèmes de créer un lien de ~/.config/duniter vers ~ ?

J’en ai parlé à un collègue ce midi et c’est une idée à laquelle on a pensé en effet :wink:

1 Like

Est-ce qu’il faut que ce soit modifié pour la release de la 1.6 ? Donc que je m’en occupe ce soir ?

Même si tu ne le fait que dans le home du user duniter ça peut être gênant car certains ont déjà un user duniter et ça peut foutre le bordel dans leur conf alors qu’il n’ont rien demander et n’utilise pas cette feature.

2 Likes

OK, donc j’oublie cette option.

Non pas forcément, si la 1.6.17 passe tout le cahier des tests elle sera proclamée stable :wink:

1 Like

Dans ce cas, ce sera un changement pour la 1.7 ou la 2.0 ? Il faudra que je modifie la doc, en tous cas.

Si je peux éviter d’en faire trop ce weekend, parce que je suis à la chorale tout le samedi, et en Ğeconomicus tout le dimanche… :wink:

Tu peut pusher sur la branche 1.6 de toute façon ont fera un rebase sur dev :wink:

1 Like

J’avais dit que je ne le ferai pas avant la semaine prochaine. J’ai craqué.

2 Likes

:joy:

1 Like

Et puis, tant que j’y suis, j’ai modifié la doc avec, hein…

Bon, mais là, il faut vraiment que j’arrête. Normalement.