[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

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: