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++

Antwort per Email an