1

Я пытаюсь настроить простую повторяющуюся задачу с launchd на OS X. Мой plist-файл находится в /Users /me /Library /LaunchAgents, и все, что я хочу, это запустить команду node --version . Мой файл plist выглядит так:

<?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>com.blah.testnode</string>
    <key>ProgramArguments</key>
    <array>
        <string>node</string>
        <string>--version</string>
    </array>
    <key>StartInterval</key>
    <integer>300</integer>
</dict>
</plist>

Он вывел правильный ответ, когда я запустил launchctl load com.blah.testnode.plist но теперь похоже, что каждое последующее выполнение выдает мне следующую ошибку:

24.08.14 13:54:03:45 com.apple.launchd.peruser.501 [251]: (com.blah.testnode [36483]) Не удалось выполнить задание (3). Настройка события, чтобы сообщить нам, когда повторить попытку: 2: Нет такого файла или каталога

24.08.14 13:54:03:45 com.apple.launchd.peruser.501 [251]: (info.jayharris.testnode [36483]) Не удалось выполнить задание (3) по странной причине: 2

Кто-нибудь знает, как заставить это работать? Благодарю.

2 ответа2

1

Я столкнулся с подобной проблемой при запуске приложения узла из LaunchAgent .plist. Launchctl требует полного пути к двоичному файлу или скрипту для выполнения указанного файла. Решение, таким образом, заключается в том, чтобы обеспечить точный каталог для узла. Например, поскольку я установил узел с помощью homebrew, я указываю полный путь /usr/local/bin/node .

0

Иметь исполняемый файл, который в основном является самостоятельным хостингом. Он запускается без проблем, когда я запускаю его из терминала с кодом

/Users/user/Public/node_modules/codem-transcode/bin/codem-transcode -c /Users/user/Public/tmp/config.json

Поэтому я создал скрипт plist, который хочу запустить при запуске, и сохранил его в папке LaunchAgent. При запуске я получаю сообщение об ошибке "Нет такого файла или каталога".

Вот картинка, показывающая почти всю информацию, которую я имею

Все

А вот и плист в коде

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">

<plist version="1.0">
    <dict>
        <key>KeepAlive</key>
        <dict>
            <key>SuccessfulExit</key>
            <false/>
        </dict>
        <key>Label</key>
        <string>com.wolftech.transcode.job</string>
        <key>RunAtLoad</key>
        <true/>
        <key>StandardErrorPath</key>
        <string>/tmp/com.wolftech.transcode.job.err</string>
        <key>StandardOutPath</key>
        <string>/tmp/com.wolftech.transcode.job.out</string>
        <key>StartInterval</key>
        <integer>60</integer>
        <key>ProgramArguments</key>
        <array>
            <string>/Users/user/Public/node_modules/codem-transcode/bin/codem-transcode -c /Users/user/Public/tmp/config.json</string>
        </array>
    </dict>
</plist>

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .