Задача решена.
Кажется, сценарию нужен абсолютный путь fswatch
(по любой причине) при запуске через plist. В этом случае /usr/local/bin/fswatch
Запуск из Терминала fswatch
будет работать нормально, но не в этом случае.
У меня проблема с загрузкой скрипта для просмотра папки через 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
Задача решена.
Кажется, сценарию нужен абсолютный путь fswatch
(по любой причине) при запуске через plist. В этом случае /usr/local/bin/fswatch
Запуск из Терминала fswatch
будет работать нормально, но не в этом случае.