Ich habe eine Flask-Anwendung mit Python3. Manchmal erstellt es einen Daemon-Prozess, um ein Skript auszuführen, dann möchte ich den Daemon bei einem Timeout beenden (verwende signal.SIGINT
).Wie kill Prozess, der von Python os.system()
Einige Prozesse, die von os.system
(zum Beispiel os.system('git clone xxx')
) erstellt wurden, werden jedoch weiterhin ausgeführt, nachdem der Daemon beendet wurde. Was soll ich tun? Danke allen!
Gibt es einen bestimmten Grund, warum Sie 'os.system()' anstelle eines 'subprocess' Aufrufs verwenden, der Ihnen viel bessere Kontrolle über die von Ihnen erstellten Subprozesse gibt? – tripleee
Wahrscheinlich Ignoranz. 'subprocess' ist etwas unklarer und es gibt viele Beispiele, wie man' os.system' immer noch verwenden kann. Obwohl die Dokumentation sagt "Das Unterprozessmodul bietet leistungsfähigere Möglichkeiten zum Erstellen neuer Prozesse und zum Abrufen ihrer Ergebnisse", wissen Sie nur, wenn Sie die Dokumentation lesen ... – holdenweb