Mit der Bibliothek multiprocessing
können Sie einen zweiten Prozess ausführen. Wie kann ich diesen Prozess nach dem Schließen des zweiten Prozesses aufrechterhalten? Ich schwöre, dass es das ursprünglich getan hat, und ich musste die Daemon-Option aktivieren, damit sie richtig schließt, aber jetzt kann ich sie nicht trennen.Den sekundären Prozess weiterlaufen lassen, nachdem der Hauptserver geschlossen wurde
Hier ist ein einfacher Code, der das Problem hat. Das Schließen des Hauptfensters schließt auch den zweiten Prozess, aber soweit ich weiß, sollte das nur passieren, wenn der Daemon auf True gesetzt ist.
from multiprocessing import Process
def background_process():
#So you can see it eating the cpu
while True:
pass
if __name__ == '__main__':
p = Process(target=background_process)
p.daemon = False
p.start()
Ich bin für die Skript Ziel auf allen Plattformen laufen zu lassen, um das Multiprocessing Teil ein großes Stück des Codes ist, würde ich es vorziehen, es zu halten ziemlich universell.
Kennzeichnen Sie Ihre Quests immer mit "Windows", wenn Sie Windows-spezifische Antworten benötigen. Normalerweise würde man annehmen, dass Sie auf ein Posix-System abzielen. – kay
Ah richtig danke, daran habe ich nie gedacht. Ich möchte idealerweise, dass es auf allen Systemen läuft, also versuche ich zu vermeiden, wichtige Teile für irgendein Betriebssystem zu machen :) – Peter
Keiner dieser Prozesse besitzt ein Fenster. Beide Prozesse sind an eine Konsole angeschlossen (conhost.exe), die sie über Standard-I/O verwenden. Die Konsole besitzt das Fenster, und es ist hart codiert, um alle Prozesse zu beenden, die daran angehängt sind, wenn es geschlossen wird. – eryksun