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)