Man sollte dabei überlegen, ob verschiedene user das gleiche Programm starten dürfen oder nicht. Firefox kann etwa jeder User nur einmal starten aber es darf mehrmals im System laufen.lunar hat geschrieben:Ich würde einen Server auf einem beim Start zufällig ausgewählten, freien Port auf 127.0.0.1 verwenden. Die Portnummer schreibt das Programm in eine Datei in "~". Beim Start liest das Programm den Port aus der Datei, verbindet sich zum Server und sendet eine definierte Nachricht. Falls eine ebenfalls definierte, positive Antwort zurück kommt, läuft das Programm bereits, ansonsten läuft es nicht.
nur eine Instanz eines Skripts
-
- Python-Forum Veteran
- Beiträge: 16025
- Registriert: Freitag 20. Juni 2003, 16:30
- Kontaktdaten:
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
Ich habs mal ein wenig aufgeräumt. Den XMLPRC Server habe ich rausgenommen, dafür wollte ich eine eigene Klasse schreiben.
Mal der aktuelle Stand: http://paste.pocoo.org/compare/165476/165474/
Dadurch verkürzt es sich auf:
Mal der aktuelle Stand: http://paste.pocoo.org/compare/165476/165474/
Dadurch verkürzt es sich auf:
Code: Alles auswählen
from rununique import RunUnique
from time import sleep
with RunUnique() as unique:
if unique:
for i in range(10):
print i
sleep(1)
else:
print 'x'
[url=http://wiki.python-forum.de/PEP%208%20%28%C3%9Cbersetzung%29]PEP 8[/url] - Quak!
[url=http://tutorial.pocoo.org/index.html]Tutorial in Deutsch[/url]
[url=http://tutorial.pocoo.org/index.html]Tutorial in Deutsch[/url]
Zum XMLRPC: Würdet ihr eher einen zufälligen Port nehmen und den dann wie beim PID abpeichern oder den Port aus dem Namen der Applikation generieren, wie es bisher der Fall war?
[url=http://wiki.python-forum.de/PEP%208%20%28%C3%9Cbersetzung%29]PEP 8[/url] - Quak!
[url=http://tutorial.pocoo.org/index.html]Tutorial in Deutsch[/url]
[url=http://tutorial.pocoo.org/index.html]Tutorial in Deutsch[/url]
Code: Alles auswählen
''.join(c for c in hashlib.sha1('myapp').hexdigest() if c.isdigit())[:4]
[url=http://wiki.python-forum.de/PEP%208%20%28%C3%9Cbersetzung%29]PEP 8[/url] - Quak!
[url=http://tutorial.pocoo.org/index.html]Tutorial in Deutsch[/url]
[url=http://tutorial.pocoo.org/index.html]Tutorial in Deutsch[/url]
Oh, hab die zufällige Zahl überlesen. Dann muss ich das ganze wieder abspeichern.... Dann kann ich das ja gleich über Sockets machen.
Edit: ich habe gerade festgestellt, dass der Aufruf durch xmlrpc extrem verlangsamt wird, da relativ lange auf eine Antwort garauf gewartet wird.
Edit: ich habe gerade festgestellt, dass der Aufruf durch xmlrpc extrem verlangsamt wird, da relativ lange auf eine Antwort garauf gewartet wird.
[url=http://wiki.python-forum.de/PEP%208%20%28%C3%9Cbersetzung%29]PEP 8[/url] - Quak!
[url=http://tutorial.pocoo.org/index.html]Tutorial in Deutsch[/url]
[url=http://tutorial.pocoo.org/index.html]Tutorial in Deutsch[/url]
Ich habe nicht damit gerechnet, dass du diesen Vorschlag ernst nehmen würdest ...jbs hat geschrieben:Oh, hab die zufällige Zahl überlesen. Dann muss ich das ganze wieder abspeichern.... Dann kann ich das ja gleich über Sockets machen.
Ja gerne.HWK hat geschrieben:Ich habe vor Ewigkeiten mal etwas mit Sockets gemacht. Falls es Dich interessiert, kann ich das mal posten.
MfG
HWK
@derdon: Du Schlingel
[url=http://wiki.python-forum.de/PEP%208%20%28%C3%9Cbersetzung%29]PEP 8[/url] - Quak!
[url=http://tutorial.pocoo.org/index.html]Tutorial in Deutsch[/url]
[url=http://tutorial.pocoo.org/index.html]Tutorial in Deutsch[/url]
So, hier ist der Code. Ist wie gesagt schon uralt. Da ist sicher einiges überholungsbedürftig, z.B. die fehlenden Exceptions nach except, aber Du willst ja auch noch etwas zu tun haben. Auf jeden Fall funktionierte es bei mir.
MfG
HWK
MfG
HWK