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

Re: Squeeze : Démarrage de postfix, fetchmail et spampd



Le 30/10/2010 15:17, Alain Rpnpif a écrit :
Bonjour,

Squeeze comporte le nouveau système de démarrage en parallèle
des /etc/init.d/*.

Les dépendances de démarrage des services postfix, fetchmail et
spampd est étrange et illogique pour moi.

Fetchmail devrait impérativement être démarré après Postfix
($mail-transport-agent). Spampd devrait être démarré avant Postfix car
il est en lien étroit avec celui-ci.

Ce qui fait qu'on devrait avoir un démarrage dans cet ordre pour
éviter de perdre des courriels :
1 spampd
2 postfix
3 fetchmail

Voici ce que l'on trouve dans les init.d :

Pour fetchmail
# Provides:          fetchmail
# Required-Start:    $network $local_fs $remote_fs $syslog
# Required-Stop:     $remote_fs
# Should-Start:      $mail-transport-agent exim4 $named
# Should-Stop:       $mail-transport-agent exim4

Pour Postfix
# Provides:          postfix mail-transport-agent
# Required-Start:    $local_fs $remote_fs $syslog $named $network $time
# Required-Stop:     $local_fs $remote_fs $syslog $named $network
# Should-Start:      postgresql mysql clamav-daemon postgrey
spamassassin
# Should-Stop:       postgresql mysql clamav-daemon
postgrey spamassassin

Pour Spampd
# Provides:             spampd
# Required-Start:       $remote_fs $syslog $network $named $time
# Required-Stop:        $remote_fs $syslog $network $named $time

D'après moi, ces dépendances sont boguées pour les raisons suivantes :

1 D'abord spamassassin doit être désactivé
dans /etc/default/spamassassin car il ne doit pas être lancé étant en
conflit avec spampd mais il doit être installé car indispensable à
spampd.
Donc postfix ne devrait pas avoir de dépendance à spamassassin mais à
quelque chose comme une variable appelée par exemple $antispam qui
prendrait la valeur spamassassin si ce dernier est effectivement
utilisé ou spampd si c'est celui-ci ou autre ; pour moi ce serait
spampd.

2 L'ordre de démarrage est 1 fetchmail, 2 postfix, 3 spampd, c'est à
dire à l'envers.
Fetchmail rapatrie les courriels mais ne peut pas les délivrer
(postfix n'est pas encore lancé). Il y a donc risque de perte de
données.

3 Un transporteur de courriel est indispensable pour fetchmail donc on
devrait avoir : # Required-Start: $mail-transport-agent au lieu de
Should-Start.

4 # Required-Start: $mail-transport-agent
ne donne pas la priorité à Postfix devant fetchmail comme il est censé
le faire. Je ne comprends pas pourquoi cela ne marche pas ce qui fait
que fetchmail démarre en premier (bogue de update-rc.d ?)

En résumé voici les modifications que je préconise :

Pour fetchmail
# Provides:          fetchmail
# Required-Start:    $network $local_fs $remote_fs $syslog
$mail-transport-agent
# Required-Stop: $remote_fs $mail-transport-agent
# Should-Start: $named
# Should-Stop:

Pour Postfix
# Provides:          postfix mail-transport-agent
# Required-Start:    $local_fs $remote_fs $syslog $named $network $time
# Required-Stop:     $local_fs $remote_fs $syslog $named $network
# Should-Start:      postgresql mysql clamav-daemon postgrey
$antispam
# Should-Stop:       postgresql mysql clamav-daemon
postgrey $antispam

Pour Spampd
# Provides:             spampd antispam
# Required-Start:       $remote_fs $syslog $network $named $time
# Required-Stop:        $remote_fs $syslog $network $named $time

Pour Spamassassin
# Provides:             spampassassin antispam
(avec risque de faux conflit avec spampd). À revoir. Il y a
contradiction ou conflit entre l'activation
dans /etc/default/spamassassin et le démarrage du
service /etc/init.d/spamassassin.

Ces problèmes n'existant qu'au démarrage ont pu échappé car la plupart
des serveurs ne sont que rarement démarrés, ce n'est pas le cas du mien.

Ma question :
Qu'en pensez-vous ? Me trompe-je ?
À quels paquets affecter les bogues (parce que je suppose que plusieurs
paquets sont en cause) ?

moi, je voterai pour la suppression de ces dépendances. quand on fait tourner postfix, clamsmtp, clamav, amavisd-new, dovecot, mailman/sympa, 4 milters, 3 policy-services, ... etc, la liste des dépendances risque de faire mal à la tête ;-p

de façon plus générale, je suis pour le découplage et pour "distribuer l'intelligence" autant que possible, surtout pour les services "asynchrones". si les services peuvent être lancés sans qu'on s'embête à les ordonner, ça fera une tache en moins, et on pourra les lancer en parallèle.

Dans le cas présent, l'ordre ne devrait pas poser de problème. sinon, ce problème serait rencontré sans redémarrage. par exemple:
- spampd n'a plus de ressources
- postfix n'a plus de ressources

en principe,
- si postfiux n'est pas dispo (pas forcément arrêté), fetchmail fera une tentative plus tard. fetchmail ne demande pas la suppression du message (du serveur pop/imap) sauf quand postfix a "pris la responsabilité" de livrer ce message. - si spampd n'est pas dispo (pas forcémenet arrêté), postfix fera une tentative plus tard. en attendant, il garde le message dans sa file d'attente (mail queue).



Reply to: