Debconf: TERM is not set

Salut tout le monde,

J’ai un problème avec un script Bash qui duplique mon disque monté sur /srv vers un disque externe. Je vous en livre les points forts :

J’ai une fonction capable de lancer la sauvegarde des données d’un service vers le disque externe après avoir arrêté ce service. Cela s’adapte donc au type du service (démon classique ou géré par inetd).

[code]function sauvegarde {
# $1 nom du service
# $2 type de service
# 0 - pas de service
# 1 - demon ordinaire
# 2 - gere par inetd
# $3 repertoire source

# Arret du service
if [ $2 -eq 1 ]
then
    service $1 stop >/dev/null 2>>$log
elif [ $2 -eq 2 ]
then
    update-inetd --disable --multi $1 >/dev/null 2>>$log
fi

# Sauvegarde
echo "-- Sauvegarde de $3" >>$log
rsync \
    --exclude='*~' --delete-before --delete-excluded --stats --partial \
    -roglpthH $3 /mnt/backup/ >>$log
echo >>$log

# Reprise du service
if [ $2 -eq 1 ]
then
    service $1 start >/dev/null 2>>$log
elif [ $2 -eq 2 ]
then
    update-inetd --enable $1 >/dev/null 2>>$log
fi

}
[/code]

Puis, tour à tour, je lance la sauvegarde de chaque élément :

sauvegarde data 0 /srv/data sauvegarde git 2 /srv/git sauvegarde mail 0 /srv/mail sauvegarde mpd 1 /srv/mpd sauvegarde partimaged 1 /srv/partimage sauvegarde prosody 1 /srv/prosody sauvegarde git 2 /srv/reseau sauvegarde rsync 0 /srv/rsync sauvegarde sauvegardes 0 /srv/sauvegardes sauvegarde scripts 0 /srv/scripts sauvegarde svn 2 /srv/svn sauvegarde transmission-daemon 1 /srv/transmission sauvegarde apache2 1 /srv/www

Mon problème :

Chaque service géré par inetd (dont la sauvegarde est faite avec le paramètre 2), produit cette sortie :

debconf: unable to initialize frontend: Dialog debconf: (TERM is not set, so the dialog frontend is not usable.) debconf: falling back to frontend: Readline debconf: unable to initialize frontend: Readline debconf: (This frontend requires a controlling tty.) debconf: falling back to frontend: Teletype

Cela fonctionne donc mais j’ai un avertissement de la part de debconf qui a le don de m’énerver et je tiens à m’en défaire. Si TERM n’est pas renseigné, je pense que c’est parce que je ne lance pas le script moi-même, c’est Udev qui s’en charge lorsqu’il reconnaît mon disque dur externe.

Voici la règle Udev qui appelle mon script :

J’ai bien envisagé de carrément couper inetd mais le but de mon script est justement d’arrêter tour à tour les services… Donc ce n’est pas cohérent. Autre idée : donner une valeur quelconque à TERM mais c’est horrible :slight_smile:

Je voudrais donc :

  • soit trouver le paramètre ou la configuration inetd qui va bien pour ne plus être gêné par cet avertissement ;
  • soit débattre avec vous de ce qui ressemble pour moi à un bug update-inetd…

Merci d’avance pour votre aide !