Bonjour,
J'ai install� le filtre AMaViS pour scanner les virus dans le courrier qui
passe par ma machine Debian 2.2. J'ai �crit un script /etc/init.d/antivirus
qui d�marre amavisd, mais je voudrait le compl�ter pour �tre capable de
l'arr�ter proprement avec une commande "antivirus stop" plut�t qu'un "kill
<amavis pid>".
Le programme amavisd est �crit en Perl, et il fait un fork rapidement pour
rendre la main � la console. Comment puis-je utiliser start-stop-daemon pour
lancer et arr�ter ce programme puisqu'on ne conna�t plus son PID? Ou bien,
comme je ne suis pas un dieu en Perl, quelqu'un peut-il m'aider � modifier
le source Perl pour conserver le PID du daemon dans un fichier
"/var/run/amavis.pid" et d'�tre capable de le tuer ult�rieurement?
Extraits du source amavisd dont je cause:
... Initialisations saut�es...
# detach thyself from the controlling terminal
if ($DEBUG eq "no") {
my $pid = fork;
exit if $pid;
die "Couldn't fork: $!" unless defined($pid);
setsid();
chdir("/");
close(STDIN);
close(STDOUT);
close(STDERR);
}
# PME 011115
# Store the PID to be able to kill the AMaViS server
if ($$ != 0) {
do_storepid($PIDFILENAME, $$);
}
# also need to set up HUP handler to re-read
read_config();
Apr�s diff�rentes fonctions pour attraper certains signaux, il y a une
grande boucle pour �couter sur un socket et faire des forks d'enfants qui
vont scanner avec l'antivirus chaque e-mail re�u.
J'ai essay� d'attraper le PID du premier enfant (puisque le p�re se suicide)
et de le conserver dans un fichier avec la fonction do_storepid(), mais je
ne sais pas comment faire.
Merci
Pierre M�tras