Ich habe eine GUI-Anwendung in Python geschrieben. Nach dem Starten der GUI sollte es einen eigenständigen Daemon ausführen. Aber wenn ich die GUI schließe oder es abstürzt, wird auch der Daemon beendet. Gibt es eine Möglichkeit, eine Anwendung unabhängig voneinander auszuführen?Wie führe ich eine Standalone-Anwendung von der aktuellen aus?
Antwort
Während ich einen Daemon nicht starte, habe ich ein pygtk-Programm, das ein anderes Programm mit subprocess.Popen() mit Shell = True startet. Zum Beispiel:
import subprocess
def callback(self, widget, date=None):
cmd = "Your command here"
other_process = subprocess.Popen(cmd, shell=True)
Da dies ein Rückruf an einem Knopf befestigt ist, nimmt pygtk Pflege der Dinge, wenn die Schaltfläche geklickt wird. Selbst wenn ich das erste pygtk GUI-Programm herunterfahre, läuft das zweite Programm weiter. FWIW, das ist auf einem CentOS Linux System.
Ich habe einmal etwas ähnliches mit TkInter gemacht, aber diesen Code habe ich jetzt nicht verfügbar. Das war auf einem Windows XP System. Meine Erinnerung ist, dass der zweite Prozess weiter lief, nachdem der erste gestoppt wurde.
Aber wenn Ihre GUI beendet wird, wird 'cmd' ebenfalls heruntergefahren, was genau das Problem ist, dem der Fragesteller gegenübersteht. –
@Noufal Ibrahim: Ich habe gerade den Eltern-GUI-Prozess erneut getestet und gestoppt. Ich habe den Kindprozess nicht gestoppt, indem ich Code verwendet habe, der fast identisch mit dem oben genannten Code ist. – GreenMatt
Windows oder Linux? Ich denke an Windows, der Child-Prozess wird irgendwie vom Elternteil "getrennt", aber unter UNIX ist es umgekehrt, bis Sie es "dämonisieren". –
- 1. Wie führe ich eine Funktion von R aus C# aus?
- 2. Wie führe ich eine Zeilensperre aus?
- 3. Wie führe ich eine bessere Kolorierungsfunktion aus?
- 4. Wie führe ich eine Qt-Anwendung aus?
- 5. Wie führe ich TopoJSON aus?
- 6. Wie führe ich MSBuild von Delphi aus?
- 7. Wie führe ich eine Batch-Datei von Java aus?
- 8. Wie führe ich PhantomJS von PHP aus
- 9. Wie führe ich PHP 7 von der Befehlszeile aus ...?
- 10. Wie führe ich die Migration von der Konsole aus?
- 11. Wie führe ich eine gespeicherte Prozedur aus Preparestatement aus
- 12. Wie führe ich eine Aufgabe täglich aus Java aus?
- 13. Wie führe ich ein externes Programm von Swift aus?
- 14. Ich führe eine * angeschlossene * Bildschirmsitzung asynchron aus
- 15. Wie führe ich Dalvik Op-Codes aus?
- 16. Wie führe ich eine Geospatial-Abfrage in Mongo aus?
- 17. Wie führe ich eine Klasse vor der Erstellung von Maven?
- 18. Wie führe ich eine Abfrage wie diese aus?
- 19. Wie führe ich eine JavaScript-Anwendung auf dem Server aus?
- 20. Wie führe ich eine bestimmte Aktivität in Android Studio aus?
- 21. Wie führe ich eine Funktion asynchron in C++ aus?
- 22. Wie führe ich eine graphQL-Abfrage mit react-apollo aus?
- 23. Wie führe ich eine URL mit Android aus?
- 24. Wie führe ich eine Datenbank einfügen aus einem PHP-Formular
- 25. Wie führe ich jede Sekunde eine Funktion aus?
- 26. Wie führe ich eine asynchrone Nachbearbeitung in CherryPy aus?
- 27. Wie führe ich eine Abfrage mehrmals in PostgreSQL aus?
- 28. Wie führe ich eine gespeicherte Orakel-Prozedur aus?
- 29. Wie führe ich eine gespeicherte Prozedur fortlaufend aus?
- 30. Wie führe ich eine unendliche Summe numerisch in Python aus?
Da die Antwort gut variieren zwischen Windows vs Unix-wie, welches OS? – Mark