Агент Launchd не запускается

Я пытаюсь написать 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?


person Thomi    schedule 16.03.2010    source источник


Ответы (2)


Не уверен, что это проблема, но я думаю, вам не следует указывать одновременно OnDemand / RunAtLoad и KeepAlive. Насколько я понимаю из документации, ключ KeepAlive заменяет комбо OnDemand / RunAtLoad.

http://developer.apple.com/mac/library/technotes/tn2005/tn2083.html#SECCODINGRECOMMENDATIONS

person Ken Aspeslagh    schedule 17.03.2010
comment
Боюсь, это не имеет значения. - person Thomi; 19.03.2010
comment
@Thomi, но вы не должны использовать KeepAlive с OnDemand / RunAtLoad. - person Parag Bafna; 16.10.2013

Обнаружил проблему - очевидно launchd не работает должным образом с plist файлами старого стиля. Он загружается нормально, но ничего не запускает. Повторное создание вышеуказанного файла как файла XML нового стиля решило проблему.

person Thomi    schedule 23.03.2010
comment
Не могли бы вы привести пример нового XML-файла стиля, у меня такая же проблема - person Geet; 19.02.2018