[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Ü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: