0
원하는 시나리오는 다음과 같습니다. 작업은 매일 오전 2시에 실행되도록 설정되어 있으며 사용자는 매일 오후 6시에 작업을 실행하려고합니다. 그는 응용 프로그램을 시작하고 그것을 변경합니다.launchd Cocoa/OSX에서 프로그래밍 방식으로 에이전트/데몬을 생성하고 구성 할 수 있습니까?
주어진 달력 날짜마다 작업을 실행하는 에이전트를 성공적으로 만들었습니다. 하지만이 날짜는 응용 프로그램을 사용하여 사용자가 자신의 의지로 구성 할 수 있어야합니다. 프로그래밍 방식으로 launchd에서 실행되도록 에이전트/데몬을 생성/시작/업데이트 할 수 있습니까? 그렇다면 어떻게해야합니까?
당신이 응용 프로그램은 특히 샌드 박스에 문제로 실행하고 있습니까 :
난 그냥 다음 코드를 사용하여 로그인 한 사용자 에이전트 폴더에 .plist 파일을 만든? 왜냐하면 *** 샌드 박스 및 인 타이틀먼트가 없기 때문에 정확히 ***에 대한 Google 결과가 몇 년 전부터 존재하기 때문입니다. 어떤 경우에 그것은 [상당히 샌드 박스 화가 불가능하다] (http://www.cocoabuilder.com/archive/cocoa/317446-sandboxing-and-calling-launchctl.html) – stevesliva
내가 통보를받을 수있는 방법이 있는지 궁금하다. 특정 시간에 일어나세요? 그런 다음 액세서리 모드에서 앱을 활성화하고 GUI가 아닌 작업을 수행 할 수 있습니다. 나는 [여기 액세서리 모드에 관한 뭉치를 썼다] (http://stackoverflow.com/questions/24088906/how-to-display-application-icon-in-menubar-even-application-is-quit/24094273#24094273). 샌드 박스 환경에서 GUI와 백그라운드 작업을 모두 실행하는 실행 파일 하나를 쉽게 유지할 수 있습니다. "도우미"앱은 다른 질문에서 언급 한 핵심 데이터를 사용하려는 경우 고통이됩니다. – stevesliva
Stevesliva, 경험을 공유해 주셔서 대단히 감사드립니다. 필자의 경우, 저장된 CoreData 데이터베이스 (~/Library/Application Support/[MyApp] 디렉토리에 저장 됨)에서 가져온 동적/업데이트 가능한 매개 변수로 백그라운드 작업을 실행해야합니다. 지금은 명령 줄 도구 프로젝트를 실행 된 작업으로 만들었습니다. 나는 대리인/데몬이 어떻게 작동하는지보고있다. .plist 파일과 exec 파일을 동적으로 링크하는 방법을 아직 알지 못했습니다. 현재 접근 방식은 ~/Library/LauchAgents 내에서 plist 파일을 읽거나 쓰려고 시도하고 있지만 그 파일을 열지는 않습니다 ... – mthama