2

У меня проблема с загрузкой скрипта для просмотра папки через fswatch в /Library /LaunchAgents Скрипт работает нормально при запуске из терминала, но через мой plist он выдает мне "Команда не найдена" для fswatch в журнале.
Могу поспорить, это связано с тем, где находится сценарий / указаны пути или нет, но я не могу понять это. Вот:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Debug</key>
    <true/>  
    <key>Label</key>
    <string>org.papers.fswatch</string>
    <key>OnDemand</key>
    <false/>
    <key>ProgramArguments</key>
    <array>
      <string>/usr/local/bin/papersfswatch.sh</string>
    </array>
    <key>RunAtLoad</key>
    <true/>    
    <key>StandardErrorPath</key>
    <string>/Users/x/Documents/Computer/Logs/papersfswatch.log</string>
    <key>StandardOutPath</key>
    <string>/Users/x/Documents/Computer/Logs/papersfswatch.log</string>
</dict>
</plist>

Когда я загружаю его с помощью sudo launchctl load /Library/LaunchAgents/org.papers.fswatch.plist он дает мне Сервис только запустил предупреждение 0 секунд и в журнале я получаю

    /usr/local/bin/papersfswatch.sh: line 2: fswatch: command not found 

Строка 2 - это, конечно, команда fswatch. Почему он не находит его, если он найден в Терминале, и как мне на него указать. Любая помощь высоко ценится!

J

1 ответ1

1

Задача решена.

Кажется, сценарию нужен абсолютный путь к fswatch (по любой причине) при запуске через plist. В этом случае /usr/local/bin/fswatch Запуск из терминала fswatch будет работать нормально, но не в этом случае.

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