Я пытаюсь написать launchd agent
, который запускает простое приложение для каждого пользователя, который входит в систему Mac OS X.
Я создал файл с именем com.mycompany.myapp.plist
и поместил его в /Library/LaunchAgents
. Содержимое этого файла:
{
LimitLoadToSessionType = "Aqua";
StartInterval = 10;
OnDemand = NO;
KeepAlive = YES;
RunAtLoad = YES;
Label = "com.mycompany.myapp";
Program = "/Users/thomi/myapp";
ProgramArguments = (
"/Users/thomi/myapp",
"-l",
"-d",
);
}
Изначально у меня не было установлено ключа StartInterval
, так как я думал, что агент запустится автоматически. Проблема в том, что агент не запускается, если я вручную не введу следующие две команды:
launchctl load -S Aqua -D all
launchctl start com.mycompany.myapp
Более того, когда я запускаю launchctl list com.mycompany.myapp
, я получаю следующий вывод:
{
"Label" = "com.mycompany.myapp";
"LimitLoadToSessionType" = "System";
"OnDemand" = true;
"LastExitStatus" = 0;
"TimeOut" = 30;
"Program" = "/Users/thomi/myapp";
ProgramArguments = (
"/Users/thomi/myapp",
"-l",
"-d",
);
};
Обратите внимание, что параметр LimitLoadToSessionType
изменился.
Я что-то здесь упускаю? Есть ли другой механизм для запуска таких агентов? Почему свойство LimitLoadToSessionType
изменилось?