Ich stimme Ihnen zu, dass Uwsgi-Dokumente ziemlich gut sind.
Jetzt:
1) Dies bedeutet, dass der uwsgi-Server seinen Master-Prozess ordnungsgemäß herunterfährt / neu startet / neu lädt und seine Mitarbeiter ordnungsgemäß ein 'SIGHUP'-Signal senden, sodass die Prozesse auf dieses Signal reagieren können: "Puffer leeren, alle hergestellten Verbindungen / Sockets schließen, etc "(--reload) Option
2) Eine Alternative zu "elegant" wäre das Herunterfahren / Neuladen der uwsgi-Anwendung, wie Sie "schmutzig" gesagt haben. Dies bedeutet, dass ein Master-Prozess und das SIGTERM-Signal seiner Mitarbeiter gesendet werden, wodurch alle Mitarbeiter und der Master-Prozess (--die-on-term) brutal neu geladen werden. Es gibt auch '--stop', was SIGINT ist, das tatsächlich Ihren gesamten uWsgi-Stack töten würde, und das ist 'Ihr Tastatur-Interrupt-Ctl + C-Verhalten ".
3) Sie können mit Prozessen mit diesen Optionen herumspielen und sie entweder ordnungsgemäß oder brutal herunterfahren, aber das Verhalten ist allgemein bekannt. Das brutale Herunterfahren von Anwendungen / Abstürzen ist nicht gut, da der Abschluss von Festplatten-E / A-Vorgängen und das Zwischenspeichern von Inhalten nicht möglich sind abgestanden, Staaten verlieren usw.
4) Ja, manchmal möchten Sie keinen uwsgi-Master-Prozess: Aus Dokumenten:
"Als Teil der Prozessverwaltungsfunktionen von uWSGI kann ein Master-Prozess aktiviert werden, um Worker-Prozesse besser zu verwalten. Wenn dies aktiviert ist, wird die WSGI-Skriptdatei oder das WSGI-Modul in den übergeordneten Master-Prozess vorinstalliert. Worker-Prozesse werden dann aus diesem Master-Prozess herausgabelt Dies kann zu Problemen führen, wenn das WSGI-Skript oder -Modul beim Laden einen Hintergrundthread erstellt, der in jedem Arbeitsprozess ausgeführt werden soll, da dieser Hintergrundthread beendet wird, wenn der Arbeitsprozess gegabelt wird. "
Hoffe das beantwortet deine Frage.