PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Fetchmail Script



Jaydee
12.07.01, 12:23
Hallo Leuts,

ich suche eine art script welches prüft, ob fetchmail gerade läuft. tut es das, soll es beendet werden und eine neues fetchmail gestartet werden. ich brauche das, weil sich zeitweise bei einem kunden der mailabruf aufhängt, weil dessen provider ne langsame leitung hat. ..

Danke Alex

howlcoyote
12.07.01, 12:50
Hallo!

Kann doch nicht so schwierig sein:

Einfach über 'ps ax | grep fetchmail' schauen, ob es läuft, falls ja, dann aus der Zeile die PID extrahieren und killen. Dann einen einfachen Systemaufruf von fetchmail machen.

cya,

Marc

howlcoyote
12.07.01, 18:33
Hier ein kleines Skript, daß ich auf die Schnelle mal für Dich gemacht habe. Du wirst ein paar Dinge für Dich anpassen müssen:



#!/usr/bin/perl

$process = 'DEIN FETCHMAIL-AUFRUF';

if (!system "ps ax | grep '`$process`' | head -n 1 | cut -c-6 | sed 's/\ //g' > NULL\n"){
chomp ($pid = `ps ax | grep '$process' | head -n 1 | cut -c-6 | sed 's/\ //g'`);
$line = `ps ax | grep '$process' | head -n 1`;
if ($line =~ /grep/){
print "Kein solcher Prozess($process) aktiv!\n";
}else{
print "\nProzess $process läuft mit der PID $pid!\n";
if (!system "kill -9 $pid > NULL\n"){
$testpid = `ps ax | grep '$process' | head -n 1 | cut -c-6 | sed 's/\ //g'`;
if ($testpid == $pid){
print "PID $pid konnte nicht gekillt werden!\n";
}else{
print "PID $pid wurde gekillt!\n\n";
system "`$process`" or die "$process konnte nicht gestartet werden: $!\n";
}
}
}
}

exit 0;



Ich hafte aber hier für garnix, damit das klar ist!

cya,

Marc

[ 12. Juli 2001: Beitrag editiert von: Marc Mc ]

howlcoyote
12.07.01, 19:59
Übrigens: Es wäre wohl etwas besser gewesen, wenn Du unter der Rubrik "Skriptsprachen" gepostet hättest.

jkaiser
13.07.01, 04:18
Einen ham wir noch:

Wie wärs mit einem simplen
killall fetchmail
?
Ist kein fetchmail da, gut, ist eins da, weg damit und auch gut! Wozu prüfen? Ist zwar sehr rabiat, leistet aber genau das, was du gefordert hast (ich bezweifele, dass es das ist was du willst! Nicht das killall, sondern das Vorgehen an sich!)
Wie (Params) und wodurch wird bei euerem Kunden denn fetchmail aufgerufen?

Gruß, Jens

Jaydee
13.07.01, 04:28
Moin,

vielen Dank für Eure Hilfe. Werde die Möglichkeiten hute mal testen...

Echt super...


Alex

rbla
13.07.01, 17:48
im daemon mode nicht notwendig

Jaydee
16.07.01, 07:11
Hi Ronny,

wenn ich fetchmail aber im deamon mode starte bleibt es aber auch eben zeitweise hängen.... :(


Alex

rbla
16.07.01, 17:13
dann setz den timeout runter