postrm script qui bloque
Bonjour,
J'ai un soucis avec un script postrm utilisant debconf qui bloque quand
je purge le paquet.
Dans le script, en cas de purge, j'utilise debconf pour récupérer le nom
d'une base postgresql, puis le supprime la base, je change un fichier de
conf de postgresql et je fais un reload. Jusque là tout va bien. Mais
debhelper ajoute gentiment la purge des paramètres du paquet dans sa
base de données, et là ça se bloque indéfiniment (enfin, ca prend plus
de 5 minutes, après quoi, j'ai envoyé un ^C pour arrêter tout).
Mon script ressemble à ça:
---------------------8<---------------------------------
#! /bin/sh -e
. /usr/share/debconf/confmodule ;
db_version 2.0 ;
if [ "$1" = "purge" ]; then
db_get ginco-db/web/host ;
GINCOHOST=$RET ;
db_get ginco-db/database/name ;
PGDATABASE=$RET ;
db_get ginco-db/database/user ;
PGUSER=$RET ;
db_stop ;
su - postgres -c "dropdb $PGDATABASE" || true ;
if grep --quiet "^host.*$PGDATABASE.*$PGUSER.*$GINCOHOST.*"
/etc/postgresql/pg_hba.conf ; then
true ;
else
grep -v "$PGDATABASE" /etc/postgresql/pg_hba.conf >
/etc/postgresql/pg_hba.conf.temp ;
mv /etc/postgresql/pg_hba.conf.temp /etc/postgresql/pg_hba.conf
;
invoke-rc.d postgresql reload >/dev/null 2>&1 || true ;
fi ;
fi;
#DEBHELPER#
exit 0
-----------------------------8<------------------------------------
debhelper ajoute les lignes suivantes:
# Automatically added by dh_installdebconf
if [ "$1" = purge ] && [ -e /usr/share/debconf/confmodule ]; then
. /usr/share/debconf/confmodule
db_purge
fi
# End automatically added section
et ça bloque sur db_purge.
debconf-devel(7) mentionne un problème avec les daemons, et dit qu'il
faut utiliser db_stop pour éviter des ennuis, mais visiblement ce n'est
pas lié.
Quelqu'un aurait une piste ?
--
Alexandre Fayolle
Reply to: