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) ?
.pid Datei genereieren ?
Re: .pid Datei genereieren ?
Am Anfang:
ps aux | grep scriptname | awk -F' ' '{print $2}' > scriptname.pid
Und dann zuletzt:
rm scriptname.pid
Sowas in der Art?
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.."
--
"Where's Oswald when we need him.."
Re: .pid Datei genereieren ?
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
<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
Re: .pid Datei genereieren ?
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.
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.
Re: .pid Datei genereieren ?
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
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