On Thu, 2005-03-17 at 06:50 +0100, Thomas Antepoth wrote:

> Die Pakete liegen momentan auf:
> 
> http://212.227.20.60/debian/killproc_2.06-1.diff.gz
> http://212.227.20.60/debian/killproc_2.06-1.dsc
> http://212.227.20.60/debian/killproc_2.06-1_i386.changes
> http://212.227.20.60/debian/killproc_2.06-1_i386.deb
> http://212.227.20.60/debian/killproc_2.06.orig.tar.gz

Gratulation. HÃtte nicht gedacht, dass du das tatsÃchlich auf dich
nimmst :)

> 
> Wie man sieht, berÃcksichtigt "pidof" nicht, wenn ein Script sich selbst 
> abfragt. Dazu wÃre ein zweiter Check auf die "$$" Variable notwendig - 
> geht das nur mir so oder reduziert sich da die Lesbarkeit?

Hat sich die Aufgabenstellung denn inzwischen verÃndert? Ich dachte du
wolltest nur wissen, ob bereits eine Instanz des Skriptes lÃuft. D.h.

pids=`pidof -x $0`
if [ `echo $pids | wc -w` -gt 1 ]; then
        echo "Ich laufe doch schon woanders..."

else
        echo "Endlich alleine auf dem Rechner..."
fi

implementiert doch schon die Logik, die du ursprÃnglich haben wolltest.

Richtig ist, dass wenn du auch noch die PIDs ausschliesslich der anderen
Instanzen *sehen* willst, du $$ aus der pidof Ausgabe rausfiltern musst,
ala s/[^0-9]$$[^0-9]//. Ãber die Lesbarkeit wÃrde ich mir bei so
einfachen Standardkonstrukten Ãbrigens keine Gedanken machen.

Noch wichtiger allerdings wÃre der Hinweis aus der pidof manpage, nicht
nur nach $0 sondern dem Installationspfad des Skripts zu filtern (also
which `basename $0` falls das Skript im Pfad ist). Genau besehen ist $0
eigentlich auch falsch, da es ja einen relativen Pfad enthalten kann der
dann bei zwei Aufrufen desselben Skriptes differieren mag. Ein basename
muss also sowieso rein, und weil nur der Name zu unsicher ist, wie in
diesem Thread auch schon gesagt wurde, besser also der volle
Installationspfad des Skriptes. Und es wÃrde mich wundern, wenn diese
Bemerkungen nicht auch fÃr checkproc gÃlten. Was sagt die man page?

Schliesslich: ist es sicher, dass checkproc nur die "anderen" Instanzen
des Skriptes ausgibt, und nicht auch die, aus dem es ausgerufen wurde?
Wenn ja, dann wÃre das sehr merkwÃrdig. Es sollte *alle* Instanzen
ausgeben, genauso wie pidof ...

Gruss, Bruno.




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