задание launchd не удалось выполнить exec (3) по странной причине: 8


Я пытаюсь запланировать простую задачу в OS X Mountain Lion 10.8.3

launchctl start nextstopsun.helloworld
Команда

Не выполняет сценарий и выдает сообщение на консоль

4/2/13 9:50:49.663 PM com.apple.launchd.peruser.501[139]: (nextstopsun.helloworld[46729]) Job failed to exec(3) for weird reason: 8

Мой плист очень прост:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Label</key>
    <string>nextstopsun.helloworld</string>
    <key>Program</key>
    <string>/Users/nextstopsun/Work/scripts/hw.sh</string>
    <key>StartCalendarInterval</key>
    <dict>
        <key>Hour</key>
        <integer>21</integer>
        <key>Minute</key>
        <integer>15</integer>
    </dict>
    <key>UserName</key>
    <string>nextstopsun</string>
</dict>
</plist>

Сценарий также очень прост

echo "Hello World!" > hw.log

Launchctl загрузил его без ошибок. При выполнении скрипта из оболочки он работает как и ожидалось. Выход из системы и вход обратно не помогают. Не нашел ответа в Google. Что это за "странная причина: 8"?

1 2

1 ответ:

Несколько предложений:

  1. Сделайте ваш скрипт исполняемым (chmod +x <your_script>) или запустите его через bash или sh, передав скрипт в качестве параметра
  2. скорее всего : у вас ошибка в строке shebang (#!) которые не могут быть признаны launchd. Попробуйте #!/bin/sh или #!/bin/bash. Обратите внимание, что это должна быть первая строка в сценарии.
  3. сначала загрузите свою работу через launchctl load <your_plist>. Но я думаю, что вы уже сделали это, или появится другое сообщение об ошибке.