2009-12-14 5 views
0

사용자가 OS X에서 로그 아웃 할 때 정리 작업을 수행해야하는 사용자 에이전트를 작성 중입니다. 에이전트가 SIGINT (SIGTERM도 SIGKILL도 아님) 신호를 수신하지 않습니다. 이 때문에 에이전트 프로세스는 Mac에서 실행되는 "고스트 (ghost)"프로세스로 남아 있으며, 더 이상 에이전트를 죽이려는 시도에 응답하지 않습니다. 사용자가 로그 아웃했다는 것을 알리고 에이전트 종료를 정상적으로 처리 할 수 ​​있어야합니다.사용자가 로그 아웃했다는 알림을 어떻게받을 수 있습니까?

나는 CFNotificationCenter에 대해 알고 있지만 로그 아웃에 사용하는 방법에 대한 예제를 찾을 수 없습니다. 실제로 나는 CFNotificationCenter를 사용하여 관찰 할 수있는 가능한 알림 (적어도 표준적인 것)을 설명하는 목록을 찾지 못했습니다. 누구든지 제발 도와 주실 래요?

감사
앨런

+0

SIGHUP은 무엇입니까? - 전화가 끊기고 전화 모뎀 연결이 끊어진 상태에서 보낸 원래 신호는 무엇입니까? –

+0

launchd를 사용하고 있습니까? –

+0

Jonathan, 그 덕분에. NSD, 예/라이브러리/LaunchAgents /에 사용자가 로그인 할 때 자동으로 내 에이전트를 시작하기위한 plist가 있습니다. – ajcaruana

답변

0

애플은 a document이 수행하는 방법을 설명 있습니다. 기본적으로 SCDynamicStoreCopyConsoleUser을 사용하여 현재 로그인 한 사용자를 확인합니다. loginwindow이면 로그인 한 사용자가 없습니다. 그러면 현재 GUI 콘솔 사용자가 변경 될 때마다 알림을 등록 할 수 있습니다.

관련 문제