Überprüfen ob ein Script schon läuft
Hallo geehrtes Publikum,
um im Shell-Script herauszufinden, ob ein Prozess schon läuft, wird die
Prozessliste nach dem Namen des Scriptes in $0 gegrepped und das Pattern
"grep" entfernt. Ist die Anzahl der Prozesse größer als 1 dann läuft der
Prozess bereits und das Script muss abgebrochen werden.
Soweit die Theorie.
Dieses Scriptlein ist zum Testen:
== cut ==
#!/bin/bash
isrunning=`ps xufa | grep "$0" | grep -v grep | wc | awk '{ print $1 }'`
echo $isrunning
s=`ps xufa`
isrunning=`echo "$s" | grep "$0" | grep -v grep | wc | awk '{ print $1 }'`
echo $isrunning
== cut ==
Der erste "echo" liefert "4" - die beim Start von nur einer Instanz falsch
ist - der zweite "echo" liefert das korrekte "1".
Wo - mein Verständnis mal beiseite gelassen - hebt's da? Diese beiden
Zeilen "isrunning=..." müßten doch äquivalent sein, oder?
Freundliches Grinsen
t++
Reply to: