Server 3.0 - fetchmail geht nicht mehr

robbie.rob

robbie.rob

Aktives Mitglied
Thread Starter
Dabei seit
01.09.2007
Beiträge
223
Reaktionspunkte
9
Im Prinzip steht es im Titel... nach dem Upgrade auf Server 3.0 (von 2.2.2) läuft fetchmail zwar brav weiterhin als Deamon im Hintergrund, aber er zieht sich keine Mails mehr von den POP-Accounts. Woran kann das liegen? Es wurden ja keine Einstellungen gegenüber 2.2.2 verändert? Muss fetchmail neu kompiliert werden? Oder gibt es eine andere Baustelle? Nebenbei gefragt: Hat evtl. jemand schon ein unter Mavericks kompiliertes fetchmail für mich? Ich bin gerade etwas unter Strom und knapp in der Zeit... das wäre arg lieb.

LG Robert
 
So... ich kann das Problem weiter eingrenzen: Es liegt nicht am fetchmail. (Ich habe ein neu kompiliert.) Es liegt schlicht und ergreifend daran, dass der Deamon nicht mehr im Hintergrund läuft - obwohl er unangetastet in der Library als LaunchDeamon liegt. Hat jemand eine Idee?

LG Robert
 
Bei mir lag es daran, dass eine der Dateien nicht root als owner hatte. Jetzt läufts wieder.
 
Ja, die plist wars (sudo chown root /Library/LaunchDaemons/fetchmail_runner.plist).

Um was anderes habe ich mich nicht gekümmert, hier meine plist:
***
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>KeepAlive</key>
<false/>
<key>Label</key>
<string>fetchmail_runner</string>
<key>ProgramArguments</key>
<array>
<string>/usr/sbin/fetchmail_runner</string>
</array>
<key>RunAtLoad</key>
<false/>
<key>StartInterval</key>
<integer>60</integer>
</dict>
</plist>
*** (ohne die *** natürlich ;)

Ich hatte Fetchmail unter Mountain Lion damals mit Hilfe dieser Anleitung eingerichtet: http://www.heise.de/netze/artikel/fetchmail-223798.html - dies hat mir irgendwie auch bei der Eingrenzung des Problems geholfen (nachdem der erste Schock verschwunden war).
 
Du hast "keep alive" auf false und "RunAtLoad" auf false? Und Dein fetchmail startet so automatisch als root ohne User-Login und läuft im Hintergrund und zieht Mails?
Wie startest Du fetchmail auf Deinem Server? Und hältst es am Laufen?

LG Robert
 
Keine Ahnung, es funktioniert :D

ich kenne mich ja nicht ganz aus, aber vielleicht liegt es an der /usr/sbin/fetchmail_runner:
***
#!/bin/sh

USERDB="/etc/fetchmail.users"
#empfehlenswert: ausfuehrliche Logs nur waehrend der Testphase schreiben lassen, weil
#sie allzu schnell wachsen, aber wenn alles normal laeuft kaum
#Wissenwertes liefern
#OPTIONS="-t 45 --logfile /var/log/fetchmail.log --silent"
OPTIONS="-t 45 --logfile /var/log/fetchmail.log"

# fetchmail fuer jeden User starten, der in $USERDB aufgefuehrt ist
# Achtung: wenn $USERDB fehlerhafte Eintraege enthaelt, verweigert
# Fetchmail kommentarlos den Dienst.
if [ -e $USERDB ] && [ -e `which fetchmail` ]; then
for username in `cat $USERDB`; do
su - $username -c "/usr/local/bin/fetchmail $OPTIONS" > /dev/null
done
fi
exit 0
*** (ohne *** natürlich ;)
 
Ich habe es versucht, aber bei mir läuft der Deamon nicht. Wo liegt der Fehler? Ein Rechte-Problem?
 
Lad deine plist doch mal mit sudo im Terminal und teste Dein Startscript auch manuell. Ich habe das Gefühl, dass Mavericks es mit Rechten und Eigentumsverhältnissen von Dateien genauer nimmt als Mountain Lion.
 
Also... ich bin einen Schritt weiter... scheinbar kann (oder soll) man unter Mavericks nicht mehr "deamonizen", sondern stattdessen einen Task immer wieder neu starten. Das geht mit dem String "SartIntervall" und setzt voraus, dass der Task zuvor erfolgreich beendet wurde. Merkwürdig - ist es doch eher ein Schritt zurück.

LG Robert
 
Bei mir hab ich das anders gelöst..

Also... ich bin einen Schritt weiter... scheinbar kann (oder soll) man unter Mavericks nicht mehr "deamonizen", sondern stattdessen einen Task immer wieder neu starten. Das geht mit dem String "SartIntervall" und setzt voraus, dass der Task zuvor erfolgreich beendet wurde. Merkwürdig - ist es doch eher ein Schritt zurück.

LG Robert

set postmaster ""


set daemon 30


set bouncemail


set no spambounce


set no softbounce


poll mail.VON_EXAMPLE.at with proto POP3 localdomains NACH_EXAMPLE.at


envelope X-Envelope-To


user MAILADRESSE with pass DEIN_PASSWORT is DEIN_USER_KURZNAME here

# ALTERNATIV
# Wird dann verwendet, wenn Du beim Provider ein Sammelkonto hast und die mails erst bei Dir getrennt werden
#
# user MAILADRESSE with pass DEIN_PASSWORT is DEIN_USER_KURZNAME to * here

... Naja - zumindest fetchmail läuft jetzt einmal und holt auch brav die Post ... jetzt fehlt mir nur noch die Logdatei und der LaunchDaemon
 
und so sieht die Plist aus

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC -//Apple Computer//DTD PLIST 1.0//EN
http://www.apple.com/DTDs/PropertyList-1.0.dtd >
<plist version="1.0">
<dict>
<key>Label</key>
<string>com.fetchmail</string>
<key>ProgramArguments</key>
<array>
<string>com.fetchmail</string>
</array>
<key>KeepAlive</key>
<true/>
</dict>
</plist>
 
Entschuldigung - das ist mein Fehler; ich habe diesen Thread nicht wirklich zu Ende gebracht. Das Problem ist gelöst. Mit Mavericks und Server 3 kann man fetchmail nicht mehr "daemonizen", sprich: nicht mehr zum Deamon machen. Der Ansatz ist nun so, wie ich es ein paar Beiträge weiter oben geschrieben habe.

D.h. in die fetchmailrc kommen Deine Zugangsdaten zu dem Postfach, das Du abrufen willst (bzw. zu den Postfächern).
Die PLIST sieht dann so aus:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>KeepAlive</key>
<false/>
<key>Label</key>
<string>com.fetchmail.launchd</string>
<key>ProgramArguments</key>
<array>
<string>/usr/sbin/fetchmail</string>
<string>-K</string>
<string>-U</string>
<string>-f</string>
<string>/private/etc/fetchmailrc</string>
</array>
<key>RunAtLoad</key>
<false/>
<key>StartInterval</key>
<integer>120</integer>
</dict>
</plist>


Explizit "keepalive" auf "false"! So funktioniert es perfekt!

LG Robert
 
Ich stehe jetzt offensichtlich auf der Leitung......obwohl es wie oben genannt bei mir funktioniert?!?!?

Ich habe fetchmail in fetchmailrc angewiesen mit "set daemon 30" alle 30 sec die Post zu holen

Warum muss man dann in der Datei Plist noch einmal einen Intervall von 120 sec setzen

??? oder wird damit sicher gestellt, das der daemon alle 120 sec nachschaut, ob das Programm abgestürzt ist und startet es neu ???
 
Nein, Du stehst nicht auf der Leitung. Du wählst nur einen anderen Weg... Du setzt in der fetchmailrc sowohl die Zugangsdaten als auch den Daemon. Du machst sozusagen einen Mix aus Credentials und Programmeigenschaften. Da spricht prinzipiell nichts dagegen. Und schon gar nicht, wenn es läuft!

Der reinen Lehre nach (wer auch immer das festgelegt hat) hat man in einem File die Credentials und in einem anderen File die Programmsteuerung. Das ist der Weg, den ich beschritten habe:

1. die fetchmailrc enthält alle Zugangsdaten von allen Postfächern, die abgefragt werden sollen und sie enthält auch die jeweilige Zustelladresse (die Zielpostfächer auf dem Server), also die Mail vom Server A geht nach Postfach B
2. die plist steuert das Programm fetchmail und gibt an, wie und wie oft das Programm ausgeführt werden soll

Nun ist es mit Mavericks so, dass sich fetchmail in der plist nicht mehr "daemonizen" lässt. Es muss nun ein Programm gestartet und "sauber" beendet werden. Dann wird es erneut gestartet und wieder beendet. Also de facto auch ein Daemon. Nur, dass dieser über ein Startintervall (im Beispiel 120 Sekunden) immer wieder neu gestartet wird. Der Key "keep alive" auf "false" sorgt dafür, dass fetchmail direkt nach dem Abruf der Mails beendet wird. Das Startintervall startet das Programm dann neu. Dazwischen (im Beispiel 120 Sekunden) belegt fetchmail weder Arbeitsspeicher noch Prozessorkapazität... ich denke, dass ist die Idee hinter Mavericks: möglichst Ressourcen sparen.

Dein Weg hält fetchmail im Hintergrund (Prozessor und Speicher) aktiv. Was völlig in Ordnung ist, da es ja kein Riesen-Programm ist.

LG Robert
 
Danke für die Info
 
Zurück
Oben Unten