cerhu > comp.os.* > comp.os.linux.configuration

Geo Cherchetout (11/04/2019, 17h37)
Bonjour,

Geneweb, logiciel de généalogie, est installé depuis longtemps dans sa
version 6.08 à bord de mon raspberrypi. J'ai encore créé récemment une base
en utilisant l'outil graphique gwsetup, outil qui était donc fonctionnel ce
jour-là puisque toutes mes bases sont accessibles depuis mon pc de bureau
dans mon navigateur web à l'adresse http://192.168.1.33:2317/$Base. Je peux
ajouter des personnes, les modifier, les supprimer, etc, sans souci.

Le problème : Depuis quelques jours, le daemon gwsetup qui permet
normalement, en mode graphique depuis mon pc dans le même navigateur, de
gérer les bases, d'importer et exporter des fichiers gedcom, etc, n'est pas
accessible. Quand je tape son adresse [..] j'obtiens un
message connexion refusée.

J'ai tenté maintes fois de relancer ce daemon diabolique, et même redémarré
le raspberrypi mais il y a comme un os. Voici ce que ça donne dans ma
session ssh :

pi@raspberrypi:~ $ systemctl status gwsetup
? gwsetup.service - LSB: Geneweb setup web interface
Loaded: loaded (/etc/init.d/gwsetup; generated; vendor preset: enabled)
Active: active (exited) since Thu 2019-04-11 17:14:30 CEST; 19min ago
Docs: man:systemd-sysv-generator(8)
Process: 2674 ExecStop=/etc/init.d/gwsetup stop (code=exited,
status=0/SUCCESS)
Process: 2681 ExecStart=/etc/init.d/gwsetup start (code=exited,
status=0/SUCCESS)

avril 11 17:14:30 raspberrypi systemd[1]: Starting LSB: Geneweb setup web
interface...
avril 11 17:14:30 raspberrypi gwsetup[2681]: Starting gwsetup server gwsetup.
avril 11 17:14:30 raspberrypi systemd[1]: Started LSB: Geneweb setup web
interface.

pi@raspberrypi:~ $ sudo systemctl restart gwsetup

pi@raspberrypi:~ $ systemctl status gwsetup
? gwsetup.service - LSB: Geneweb setup web interface
Loaded: loaded (/etc/init.d/gwsetup; generated; vendor preset: enabled)
Active: active (exited) since Thu 2019-04-11 17:35:01 CEST; 36s ago
Docs: man:systemd-sysv-generator(8)
Process: 2836 ExecStop=/etc/init.d/gwsetup stop (code=exited,
status=0/SUCCESS)
Process: 2843 ExecStart=/etc/init.d/gwsetup start (code=exited,
status=0/SUCCESS)

avril 11 17:35:00 raspberrypi systemd[1]: Starting LSB: Geneweb setup web
interface...
avril 11 17:35:01 raspberrypi gwsetup[2843]: Starting gwsetup server gwsetup.
avril 11 17:35:01 raspberrypi systemd[1]: Started LSB: Geneweb setup web
interface.

Je précise que dans le fichier /etc/geneweb/gwsetup_only.txt j'ai bien mis
192.168.1.20 qui est l'adresse ip de mon pc.

Je ne comprends pas cette notion de daemon "active (exited)" bien qu'elle
soit le sujet de nombreuses discussions sur le net. Ce que je peux dire
c'est qu'aucun processus gwsetup n'est en cours d'exécution, selon la
réponse à la commande ps -A.

Un utilisateur expérimenté de geneweb serait sûrement le plus qualifié mais
j'accepte l'aide de tout le monde. Merci d'avance.
Marc SCHAEFER (12/04/2019, 09h52)
Geo Cherchetout <geo.cherchetoutsanspam> wrote:
> pi@raspberrypi:~ $ systemctl status gwsetup
> ? gwsetup.service - LSB: Geneweb setup web interface
> Loaded: loaded (/etc/init.d/gwsetup; generated; vendor preset: enabled)
> Active: active (exited) since Thu 2019-04-11 17:14:30 CEST; 19min ago
> Docs: man:systemd-sysv-generator(8)
> Process: 2674 ExecStop=/etc/init.d/gwsetup stop (code=exited,
> status=0/SUCCESS)
> Process: 2681 ExecStart=/etc/init.d/gwsetup start (code=exited,
> status=0/SUCCESS)


N'y aurait-il pas des logs de ce daemon spécifique via `journalctl -xe'
(qui résume simplement certains logs de /var/log), ou des logs
spécifiques à ce programme (p.ex. dans /var/log/genetruc/argh.log ?)

En alternative il y a toujours la possibilité de faire un

sudo -s # devenir root (s'il y a un pw root: juste su)
su - l-utilisateur-qui-tourne-habituellement-ce-service -s /bin/bash
# puis de lancer avec des options similaires à ce que fait systemd.

pour voir le message d'erreur s'il n'y a pas de logs.

On peut aussi consulter le log du kernel à tout hasard où certains
crashes peuvent être signalés: dmesg (ou sudo dmesg)
Geo Cherchetout (12/04/2019, 15h46)
Le 12/04/2019 09:52, *Marc SCHAEFER* a écrit :

> N'y aurait-il pas des logs de ce daemon spécifique via `journalctl -xe'
> (qui résume simplement certains logs de /var/log), ou des logs
> spécifiques à ce programme (p.ex. dans /var/log/genetruc/argh.log ?)


Je ne trouve ni geneweb.log ni gwsetup.log mais c'est peut-être parce que
j'ai mal configuré syslog-ng ou parce que /var/log/ est monté en mémoire vive ?

En revanche journalctl -xe immédiatement après avoir tenté un nouveau «
restart » de gwsetup donne ceci, je ne recopie que la fin :

-- Une nouvelle session a été créée pour l'utilisateur pi avec
-- l'identifiant (ID) c7.
Geo Cherchetout (12/04/2019, 16h02)
Pardon, j'ai quand même une petite trace dans /var/log/syslog mais ça ne
m'aide pas vraiment :

pi@raspberrypi:/etc/init.d $ grep gw /var/log/syslog
Apr 12 14:23:19 raspberrypi gwsetup[8742]: Stopping gwsetup server gwsetup.
Apr 12 14:23:19 raspberrypi gwsetup[8749]: Starting gwsetup server gwsetup.
Marc SCHAEFER (12/04/2019, 18h39)
In article <q8q4s6$2oc5$1> you wrote:
> En revanche journalctl -xe immédiatement après avoir tenté un nouveau «
> restart » de gwsetup donne ceci, je ne recopie que la fin :


Faites-voir plutôt un

- reboot de votre pi
- vérification avec ps auxw | grep gwsetup
qu'il n'est pas lancé
- systemctl gwsetup stop
- systemctl gwsetup start

ensuite regardez s'il est lancé, puis consultez à nouveau
les logs (ls -lart /var/log # t pour sort-by-time) et
le journalctl -xe.

systemctl restart fait un stop ce qui pollue les logs,
à voir.
Marc SCHAEFER (12/04/2019, 18h50)
Geo Cherchetout <geo.cherchetoutsanspam> wrote:
> contenu de /etc/init.d/gwsetup


Avec systemd, il se pourrait que cela ne soit pas ce script qui
soit exécuté, il faudrait encore vérifier cela, p.ex. avec
systemctl status gwsetup.service

P.ex. chez moi avec bind9:
/lib/systemd/system/bind9.service
qui exécute ExecStart=/usr/sbin/named -f $OPTIONS
(et donc ignore superbement tout changement à
/etc/init.d/bind9, qui n'est là que pour la
compatibilité).

Vous pourriez modifier le script init de gwsetup,
en supposant que c'est le bon, pour:

log_begin_msg "Starting gwsetup server" "gwsetup"
if ! start-stop-daemon -b --start --quiet --chuid $GENEWEBUSER --exec
$WRAPPER; then
log_end_msg 1
exit 1
fi

ajouter un "echo" du genre
echo start-stop-daemon -b --start --quiet --chuid $GENEWEBUSER --exec $WRAPPER
et vous aurez les arguments complets (mais peut-être pas certaines
variables d'environnement).

Et éventuellement consulter le script $WRAPPER pour voir comment il
lance.

Puis ajouter les arguments de debugging nécessaires.
Geo Cherchetout (12/04/2019, 19h12)
Le 12/04/2019 18:39, *Marc SCHAEFER* a écrit :

> Faites-voir plutôt un
> - reboot de votre pi
> - vérification avec ps auxw | grep gwsetup
> qu'il n'est pas lancé
> - systemctl gwsetup stop
> - systemctl gwsetup start
> ensuite regardez s'il est lancé, puis consultez à nouveau
> les logs (ls -lart /var/log # t pour sort-by-time) et
> le journalctl -xe.
> systemctl restart fait un stop ce qui pollue les logs,
> à voir.


Problème résolu. J'ai constaté que gwsetup a besoin pour démarrer de trouver
un fichier /var/log/gwsetup.log et peut-être aussi geneweb.log, or ces
fichiers disparaissent chaque fois que je re-boote la bestiole depuis que
j'ai mis cette ligne dans /etc/fstab :

tmpfs /var/log tmpfs defaults,noatime,nosuid,mode=0755,size=20m 0 0

Il y a 5 minutes j'ai recréé manuellement les dits fichiers de log et
l'utilisateur pi a réussi du premier coup à faire un restart effectif. :-)

Je n'ai plus qu'à faire en sorte que gwsetup.log et geneweb.log soit recréés
automatiquement au boot. Cron doit pouvoir faire ça.

Merci pour le soutien et les petits trucs que je ne connaissais pas.
Marc SCHAEFER (13/04/2019, 08h58)
Geo Cherchetout <geo.cherchetoutsanspam> wrote:
> j'ai mis cette ligne dans /etc/fstab :
> tmpfs /var/log tmpfs defaults,noatime,nosuid,mode=0755,size=20m 0 0


Ah oui, donc /var/log est perdu à chaque redémarrage, ennuyeux.

> Il y a 5 minutes j'ai recréé manuellement les dits fichiers de log et
> l'utilisateur pi a réussi du premier coup à faire un restart effectif. :-)


Modifier le vrai script de démarrage de gwsetup (celui qui est référencé
par systemd) pour créer ces répertoires et fichiers avec les bons droits
avant de lancer.

> Je n'ai plus qu'à faire en sorte que gwsetup.log et geneweb.log soit recréés
> automatiquement au boot. Cron doit pouvoir faire ça.


Oui, avec le @reboot dans une crontab user, mais pour le système je préfère
/etc/rc.local

for i in gwsetup geneweb
do
touch /var/log/$i.log
# évt. chown ?
done

systemctl start gwsetup
Geo Cherchetout (13/04/2019, 10h11)
Le 13/04/2019 08:58, *Marc SCHAEFER* a écrit :

> Modifier le vrai script de démarrage de gwsetup (celui qui est référencé
> par systemd) pour créer ces répertoires et fichiers avec les bons droits
> avant de lancer.


Je viens enfin de découvrir /usr/lib/geneweb/gwsetup.wrapper. Voici ce qu'il
contient :

$ sudo cat /usr/lib/geneweb/gwsetup.wrapper
#!/bin/sh
# This is a wrapper script for starting gwsetup from the init script
# It is needed for properly set up the umask the daemon runs under
# as start-stop-daemon does not allow this and have the program
# run with /var/lib/geneweb as default directory so that created bases
# go there
umask 007
cd $GENEWEBDB
# Use a non predictable name for the temporary command output file
TEMPFILE=`tempfile`
$DAEMON -gd $GENEWEBSHARE -lang $LNG -p $GWSETUP_PORT -bindir /usr/bin -only
$GWSETUPONLYFILE -log $TEMPFILE -daemon >>/var/log/gwsetup.log 2>&1
exit $?

Supposons que je parvienne à modifier ce wrapper, ne sera-t-il pas écrasé
lors de la prochaine mise à jour du programme ?

> Oui, avec le @reboot dans une crontab user, mais pour le système je préfère
> /etc/rc.local
> for i in gwsetup geneweb
> do
> touch /var/log/$i.log
> # évt. chown ?
> done
> systemctl start gwsetup


Ça me plait bien, ça, merci beaucoup, je vais essayer de le mettre en place.
Marc SCHAEFER (13/04/2019, 10h21)
Geo Cherchetout <geo.cherchetoutsanspam> wrote:

> Supposons que je parvienne à modifier ce wrapper, ne sera-t-il pas écrasé
> lors de la prochaine mise à jour du programme ?


Chaque package Debian (et donc vraisemblablement raspbian) peut enregistrer
des fichiers de configuration dont les modifications sont gérées aux mises à
jour. Par exemple, si toi ou un script a modifié un de ces fichiers, la mise
à jour te proposera un dialogue pour corriger le problème. On peut lister les
fichiers de config ainsi (exemple pour xfig:
root@reliand:/home/schaefer# cat /var/lib/dpkg/info/xfig.conffiles
/etc/X11/app-defaults/Fig
/etc/X11/ja_JP.eucJP/app-defaults/Fig
/etc/X11/ko_KR.eucKR/app-defaults/Fig
)

Toutefois, effectivement, tout autre fichier d'un package (exécutable,
script, etc) sera écrasé sans vérification.

Mais Debian propose une deuxième solution: les diversions. Par exemple,
dans mon cas je veux que /usr/bin/soffice soit en fait remplacé par
un wrapper-script de mon cru, alors j'ai installé une diversion
de /usr/bin/soffice à /usr/bin/soffice.distrib et créé mon propre
script (ou exécutable, ou symlink) dans /usr/bin/soffice donc les
mises à jour de la distribution du package contenant ce fichier
sont maintenant faites dans le fichier qui se termine par .distrib
et plus mon wrapper-script. Voir `man dpkg-divert'

Attention toutefois, si tu utilises des diversions, de bien vérifier (par
diff p.ex.) à chaque mise à jour, en particulier de version de la distribution,
que d'éventuels patches de sécurité ne sont pas à porter à ta version de
fichier. Cf man dpkg-divert
Geo Cherchetout (13/04/2019, 11h12)
Le 13/04/2019 08:58, *Marc SCHAEFER* a écrit :

> Oui, avec le @reboot dans une crontab user, mais pour le système je préfère
> /etc/rc.local
> for i in gwsetup geneweb
> do
> touch /var/log/$i.log
> # évt. chown ?
> done
> systemctl start gwsetup


Essayé et approuvé, merci beaucoup. :-)
dadou (13/04/2019, 21h27)
Le 11/04/2019 à 17:37, Geo Cherchetout a écrit :
> Bonjour,
> Je peux ajouter des personnes, les
> modifier, les supprimer, etc, sans souci.


Supprimer des personnes sans souci, même avec la police ?
Excusez, je n'ai pas pu m'empêcher...
Discussions similaires
[Geneweb] gwsetup inaccessible

Questions sur Raspbian

raspbian

[AIDE][GENEWEB] Oùse cache gwsetup (Debian woody)


Fuseau horaire GMT +2. Il est actuellement 17h02. | Privacy Policy