Các tài liệu cho interruptionHandler
khối NSXPCConnection
trạng thái:Trình xử lý gián đoạn XPC có được gọi khi launchd giết quá trình không?
Một handler gián đoạn đó được gọi là nếu thoát quá trình từ xa hoặc tai nạn.
Tuy nhiên, Daemons and Services Programming Guide trạng thái:
dịch vụ XPC được quản lý bởi launchd, mà ra mắt họ theo yêu cầu, khởi động lại chúng nếu gặp sự cố và kết thúc họ (bằng cách gửi SIGKILL) khi họ đang nhàn rỗi. Điều này minh bạch đối với ứng dụng sử dụng dịch vụ, ngoại trừ trường hợp dịch vụ gặp sự cố khi xử lý thông báo yêu cầu phản hồi. Trong trường hợp đó, việc áp dụng có thể thấy rằng kết nối XPC của nó đã trở thành không hợp lệ cho đến khi dịch vụ được khởi động lại bởi launchd
Nếu một quá trình XPC bị giết vì nhàn rỗi, tôi sẽ nhận được một cuộc gọi lại trong interruptionHandler
của tôi? Hoặc tôi sẽ chỉ nhận được cuộc gọi lại khi ứng dụng gặp sự cố khi xử lý tin nhắn? Tôi hỏi vì trường hợp thử nghiệm này có vẻ như không thể mô phỏng. Vòng đời dịch vụ XPC không may là một hộp đen rất.
Bạn đã phát hiện ra điều đó? Việc gửi SIGKILL theo cách thủ công sẽ gọi trình xử lý ngắt. – ctietze