On Tue, Mar 15, 2005 at 09:28:58PM +0100, Thomas Antepoth wrote:
> 
> 
> 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?

Nicht unbedingt. In der zweiten Version d�rfte der Output von ps xufa als
Parameter des Befehls echo in der Prozesstabelle auftauchen, in der ersten
nicht.

Gru�
Christian

-- 
Christian Knoke            * * *            http://cknoke.de
* * * * * * * * *  Ceterum censeo Microsoft esse dividendum.


-- 
Haeufig gestellte Fragen und Antworten (FAQ): 
http://www.de.debian.org/debian-user-german-FAQ/

Zum AUSTRAGEN schicken Sie eine Mail an [EMAIL PROTECTED]
mit dem Subject "unsubscribe". Probleme? Mail an [EMAIL PROTECTED] (engl)

Antwort per Email an