Die Dokumentation für die interruptionHandler
Block NSXPCConnection
Zustände:Wird ein XPC-Unterbrechungshandler aufgerufen, wenn Launchd den Prozess beendet?
Eine Unterbrechung Handler, wenn der Remote-Prozess beendet wird oder abstürzt aufgerufen wird. Jedoch
, die Daemons and Services Programming Guide Staaten:
XPC Dienste werden von launchd verwaltet, die sie bei Bedarf startet, startet sie, wenn sie abstürzen und beendet sie (durch das Senden SIGKILL), wenn sie untätig sind. Dies ist für die Anwendung transparent, die den Dienst verwendet, außer für den Fall eines Dienstes, der bei der Verarbeitung einer Nachricht abstürzt, die eine Antwort erfordert. In diesem Fall kann die Anwendung sehen, dass seine XPC Verbindung ungültig geworden ist, bis der Dienst von
launchd neu gestartet wird
Wenn ein XPC Prozess für Müßig getötet wird, werde ich einen Rückruf in meinem interruptionHandler
bekommen? Oder erhalte ich den Rückruf nur, wenn die App während der Verarbeitung einer Nachricht abstürzt? Ich frage, denn dieser Testfall scheint unmöglich zu simulieren. XPC Service Lifecycle ist leider eine sehr schwarze Box.
Haben Sie herausgefunden, was es macht? Durch das Senden von SIGKILL wird der Unterbrechungshandler manuell aufgerufen. – ctietze