Fetchmail - Für Flatrate als Daemon starten
Wenn man eine Flatrate hat und die Möglichkeit in kurzen Abständen nach
seinem Postfach zu schauen will man nicht bei jedem Neustart oder Reboot
Fetchmail mit diesem Befehl starten:
fetchmail -d 300 -f /etc/fetchmailrc -a -v -L /var/log/fetchmail
# -d 300 : als Daemon starten, aller 300 s
# Mails (beim Provider?!) abholen
# die anderen Optionen müssten bekannt sein
Bei meinem SuSE war aber keine andere Möglichkeit dafür vorgesehen. Deshalb
versuchte ich aus den bestehenden Startup-Scripts in /etc/init.d
eine Möglichkeit des Startens bei einem bestimmten "runlevel" zu "basteln".
2.1. START|STOP-Datei /usr/local/bin/fetchmaild erstellen
Als erstes erzeugte ich unter /usr/local/bin (ihr könnt diesen
Speicherort auch ändern, müßt dann nur die "Links" entsprechend anpassen)
die Datei "fetchmaild" mit folgendem Inhalt:
#!/bin/sh
# Beenden und Neustarten der Fetchmail-Daemons per init.d
#
. /etc/rc.config
FETCH_BIN=/usr/bin/fetchmail
FETCH_CONF=/etc/fetchmailrc
FETCH_LOG=/var/log/fetchmail
base=${0##*/}
link=${base#*[SK][0-9][0-9]}
test $link = $base && START_FETCH_DAEMON=yes
test "$START_FETCH_DAEMON" = yes || exit 0
if [ ! -x $FETCH_BIN ] ; then
echo -n "Fetchmail-Program nicht installiert ! "
exit 5
fi
. /etc/rc.status
rc_reset
case "$1" in
start)
echo -n "Starte FETCHMAIL als Daemon "
checkproc $FETCH_BIN
if [ $? -eq 0 ] ; then
echo -n "- Warnung: FETCHMAIL laeuft bereits ! "
rc_status -v && rc_exit
fi
startproc $FETCH_BIN -d 300 -f $FETCH_CONF -a -v -L $FETCH_LOG
rc_status -v
;;
stop)
echo -n "Beende FETCHMAIL - Daemon ! "
checkproc $FETCH_BIN || echo -n "- Warnung: FETCHMAIL laeuft nicht ! "
killproc -TERM $FETCH_BIN
rc_status -v
;;
restart)
$0 stop
$0 start
rc_status
;;
status)
echo -n "Pruefe auf: FETCHMAIL - Daemon ! "
checkproc $FETCH_BIN
rc_status -v
;;
*)
echo "Verwendung: $0 {start|stop|restart|status} "
exit 1
;;
esac
rc_exit
#/usr/bin/fetchmail -q # Beenden des laufenden Fetchmail-Daemons
# Starten von Fetchmail als Hintergrundprozess
#/usr/bin/fetchmail -d 300 -a -f /etc/fetchmailrc
# >> /var/log/fetchmail
2.2. "Links" auf START|STOP-Datei setzen
Als nächstes setzt ihr einen "Softlink" von dieser Datei nach /etc/init.d/fetchmaild
damit die Links in den "Runlevel" standardmäßig dorthin zeigen können.Setzen
des Links:
ln -s /usr/local/bin/fetchmaild /etc/init.d/fetchmaild
Im MidnightCommander (mein Lieblingswerkzeug) geht dasselbe, wenn ihr euch im
Quellverzeichnis befindet (Cursor auf der zu verlinkenden Datei), in der anderen
Fensterhälfte das Zielverzeichnis habt und [STRG+X] gefolgt von [S] drückt.
Hier braucht dann nur noch der Name des Links eingegeben werden.
Von dem Link unter /etc/init.d kann man noch einen Link nach
/sbin/rcfetchmaild setzen, um das Script auch mal einfach von Hand
aufrufen zu können (rcfetchmaild start|restart|stop|status).
Wichtig sind die nun zu setzenden Links von /etc/init.d/fetchmaild
in die gewünschten "Runlevel" - bei mir sind das rc3.d sowie rc5.d.
Hier müssen ein "START-" und ein "KILL-Link" gesetzt werden (Start vor Sendmail und
beenden nach Sendmail). Somit ergeben sich die Links:
- ln -s /etc/init.d/fetchmaild /etc/init.d/rc3.d/S10fetchmaild
- ln -s /etc/init.d/fetchmaild /etc/init.d/rc3.d/K14fetchmaild
- ln -s /etc/init.d/fetchmaild /etc/init.d/rc5.d/S10fetchmaild
- ln -s /etc/init.d/fetchmaild /etc/init.d/rc5.d/K14fetchmaild
2.3. /etc/rc.config anpassen
Da das "START|STOP-Script" (bei SuSE) standardmäßig in der Datei
/etc/rc.config nachsieht, ob eine
entsprechende Variable (hier START_FETCH_DAEMON=yes) auf "yes" gesetzt ist,
muß diese Variable auch in /etc/rc.config eingefügt werden.
Das könnt ihr von Hand machen oder ihr ladet euch die Datei
rc.config.fetchmail
herunter und fügt den Inhalt folgendermaßen an /etc/rc.config an:
cat /scripts/rc.config.fetchmail >> /etc/rc.config
Als ersten Test kann man nun von Hand die verschiedenen Optionen (START|RESTART|STOP|STATUS)
ausprobieren. Beim nächsten Reboot/Neustart sollte "fetchmail" automatisch gestartet
werden.
|