.pid Datei genereieren ?

Post Reply
Message
Author
Rossi

.pid Datei genereieren ?

#1 Post by Rossi »

Moin,

wenn ich ein Shellskript habe, wie kann ich für das eine .pid Datei genereieren (so daß beim starten des Programmes z.B. in /var/run die .pid datei erzeugt wird, die die Prozesnummer enthält und nach dem Beenden auch wieder gelöscht wird) ?

odauter
Posts: 460
Joined: 17. Apr 2000 20:05
Location: Hamburg
Contact:

Re: .pid Datei genereieren ?

#2 Post by odauter »

Am Anfang:
ps aux | grep scriptname | awk -F' ' '{print $2}' > scriptname.pid

Und dann zuletzt:
rm scriptname.pid

Sowas in der Art?
bye.olli
--
"Where's Oswald when we need him.."

Jochen

Re: .pid Datei genereieren ?

#3 Post by Jochen »

Warum so kompliziert, olli?
<blockquote><pre><font size="1" face="">code:</font><hr><font face="Courier New" size="2">
echo "$$" >/var/run/$0.pid
</font><hr></pre></blockquote>
tut's auch wesentlich ressourcenschonender.

Jochen

Rossi

Re: .pid Datei genereieren ?

#4 Post by Rossi »

Wahnsinn! "$$" kannte ich nicht. Danke :) Aber automatisch loswerden ist nicht, oder ? (außer mit rm im Skript - aber ein kill löscht es nicht, wie bei den meisten Diensten)

Letzte Frage, wie bekomme ich den Programmnamen raus ? $0 liefert den Pfad+namen, was ein Problem ist, wenn ich das Skript aus einem anderen Verzeichnis heraus aufrufe.

gewitter
Posts: 1354
Joined: 09. Apr 2001 9:03

Re: .pid Datei genereieren ?

#5 Post by gewitter »

basename=${0##*/}

Jochen

Re: .pid Datei genereieren ?

#6 Post by Jochen »

Und Löschen bei Beendigung der Shell geht auch. Als erste Zeile ein <blockquote><pre><font size="1" face="">code:</font><hr><font face="Courier New" size="2">
trap 'rm /var/run/$basename.pid' 0</font><hr></pre></blockquote>

Damit wird das rm-Kommando bei Ende der Shell ausgeführt, egal ob mittels kill -TERM abgeschossen, mittels ^C unterbrochen oder einfach per "exit" beendet.

Jochen

Rossi

Re: .pid Datei genereieren ?

#7 Post by Rossi »

Ihr seid Helden. Vielen Dank nochmal :=)

Post Reply