PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : [Bash] Abfrage ob Programm läuft



BenNavis
01-09-2004, 11:01
HI,

ich möchte in einem Shell-Skript abfragen, ob pppd läuft.
Wie macht man das am besten?

Danke euch,
Ben

peschmae
01-09-2004, 14:28
if $(ps -e | grep -q "pppd$"); then
echo iiiiiiii der läuft ja
fi


MfG Peschmä

BenNavis
01-09-2004, 15:03
Danke, das ist super!

Vielleicht kannst Du mir ja nochmal weiterhelfen.
Ich möchte per Skript testen, ob ein Ping möglich ist. Leider ist der normale Rückgabewert dafür ungeeignet.
Kann man das auch irgendwie in ein if einbauen?
Sowas wie "wenn ping von www.xyz.org "erfolgreich", dann..., sonst...

EDIT: Müsste es nicht gehen mit:


if $(ping -c 10 www.heise.de | grep -q "unknown host"); then
echo "network unreachable"
fi

?

Wenn ich meine Verbindung trenne und das Skript dann ausführe, bekomme ich nicht das echo ausgegeben, sondern die Zeile von Ping (ping: unknown host...)

Ben

peschmae
01-09-2004, 20:32
Ping gibt Fehler wie die meisten anderen Programme nach Stderr aus. Durch die Pipe geleitet wird aber der Stdout. Stderr nach Stdout umleiten geht mit 2<&1


if $(ping -c 10 www.heise.de 2<&1 | grep -q "unknown host"); then
echo "network unreachable"
fi


Allerdings glaube ich dass die Rückgabewerte für den Zweck durchaus geeignet sind. Problem gelöst


if $(ping -c 1 www.gmx.ch &>/dev/null); then
echo ok
else
echo nicht ok;
fi


MfG Peschmä

BenNavis
02-09-2004, 10:29
Ping gibt Fehler wie die meisten anderen Programme nach Stderr aus. Durch die Pipe geleitet wird aber der Stdout. Stderr nach Stdout umleiten geht mit 2<&1

Wieder was gelernt, danke! :)