Запуск Bash Script через OSX LaunchAgents?
Я пытаюсь запустить скрипт bash с помощью созданного мной файла агента запуска.plist. Файл.plist настроен на выполнение сценария во время загрузки и повторение процесса с интервалами 600 секунд. Вот весь агент запуска.plist:
<plist version="1.0">
<dict>
<key>Label</key>
<string>com.apple.scap</string>
<key>ProgramArguments</key>
<array>
<string>/bin/bash</string>
<string>/Users/viesca/Documents/Projects/Scripts/scap.sh</string>
</array>
<key>RunAtLoad</key>
<true/>
<key>StartInterval</key>
<integer>600</integer>
<key>AbandonProcessGroup</key>
<true/>
</dict>
И это сценарий захвата экрана scap.sh
:
#!/bin/bash
capture="$(which screencapture) -x -m -C -t jpg"
freq=30
maxshots=10
counter=0
while [ $counter -lt $maxshots ] ; do
$capture capture${counter}.jpg # Counter keeps incrementing.
counter=$(( counter + 1 ))
sleep $freq # freq is therefore the number of seconds between pics.
done
zip -r $(date +%s).zip capture* # Zip captured images and cleanup
rm -Prf capture*
exit 0
Вот процесс, которым я следую, чтобы "установить" этот Launch Agent:
- Агент запуска назван
com.apple.scap.plist
- Я скопировал Launch Agent в
$HOME/Library/LaunchAgents
- Я загрузил Launch Agent с помощью команды:
launchctl load com.apple.scap.plist
На этом этапе сценарий должен был начать работать, поскольку он настроен на выполнение во время загрузки в соответствии с файлом.plist, который я вставил выше, однако ничего не происходит. Когда я вручную выполняю скрипт scap.sh
из терминала он работает отлично и начинает снимать скриншоты, как и ожидалось.
Права доступа к сценарию установлены следующим образом:
-rwxrwxrwx@ 1 viesca staff 368 Apr 2 16:52 scap.sh
Права доступа к файлу.plist устанавливаются следующим образом:
-rwxr-xr-x 1 viesca staff 435 Apr 2 16:51 com.apple.scap.plist
Я уже пробовал войти / выключить и перезагрузить систему. Пока не повезло. Любые идеи, почему эта установка не работает, как ожидалось?