From: Mark Seuffert (Pirates) (captain_at_pirate.de)
Date: 12. Nov 1998
Hai Shellscript-Experten... :)
vielleicht hab ich mal von dem nervenden Endlosdials erzählt die man
evtl hat, wenn die ISDN-Verbindung nicht richtig klappt.
Bei mir wird bei Connection ein Script gestartet das Mails austauscht:
falls die Verbindung zwar steht aber nicht richtig klappt, dann legt er
nach 60 Sekunden ohne Traffic auf, obwohl der Nameserver noch länger
versucht Adressen aufzulösen und wieder ein Dialout verursacht... urks,
das kann unter Umständen endlos so weiter gehen (einmal hatte ich 90 DM
an einem Tag.)
Lösung, ein Script das die Verbindung prüft und notfalls abricht... hab
ich gestern geschrieben, funktioniert fast schon perfekt:
--------------- schnipp -------------------
#!/bin/sh
PIDFILE="/var/run/exchange_mail.pid"
INTERNET_HOST="ip.of.my.provider"
trap "rm -f $PIDFILE;exit 1" 1 2 3 4 6 8 9 13 15 16 17
# Exit if another exchange-mail is running
if test -f $PIDFILE; then
exit 1
fi
echo $$ > $PIDFILE
# Check if internet connection is really working
ping -c1 $INTERNET_HOST > /dev/null
if [ $? -gt 0 ]; then
echo No connection, freezing for 60 seconds
sleep 60; rm -f $PIDFILE; exit 1
fi
# Internet connection is now established, do all stuff here...
# exit and remove pidfile
rm -f $PIDFILE
--------------- schnapp -------------------
Was ich nicht mit Shellscript hinbekommen (aber mit Perl bei meinen
Scripten hervoragend funktioniert):
Wenn ein PID-File existiert, die PID einlesen und testen ob ein Prozess
mit der ID überhaupt noch existiert.... wenn so ein Prozess nicht mehr
existiert, dann wird das PID-File gelöscht. Das hat dann den Vorteil,
dass man sich nicht mehr um übriggebliebene PID-Files (die ja als Lock-
File dienen) kümmern muss.
Kann mir jemand sagen wie das in einem Shell-Script geht oder Tips
geben? Wäre nett... in Perl mache ich einen Test ob ein Prozess noch
geht mit einem "kill 0 pid"... mach ich das in der Shell, stirbt der
arme Prozess.
Gruss, /\/\ a r k
-- Pirates Communication Kreative Software & Internet Wilhelmstrasse 5 http://www.pirate.de D-69115 Heidelberg fone: 06221/601875 fax: 06221/601876 . . . . . . . . . . . . . _.´(._.´(._.´(._.´(._.´(._.´(._.´(._.´(._.´(._.´(._.´(._.´(._.´(._.PGP-Key auf Anfrage, EMail schreiben mit Subject: get pgp-key Captains Rezepte (Pizza, Lasagne) gibt es z.B. mit: get pizza
Dieses Archiv wurde generiert von hypermail 2.1.2 : 11. Mar 2002 CET