Я не можу запланувати періодичний запуск з launchctl
/ launchd
на OS X (Leopard). По суті, мені не вдається знайти покроковий список інструкцій в Інтернеті, і інтуїтивний підхід не працює.
sync.plist
файл:
<?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>Label</key>
<string>net.madrat.utils.sync</string>
<key>Program</key>
<string>rsync</string>
<key>ProgramArguments</key>
<array>
<string>-ar</string>
<string>/path/to/folder/</string>
<string>/path/to/backup/</string>
</array>
<key>StartInterval</key>
<integer>7200</integer>
</dict>
</plist>
Я поставив цей сценарій всередині шляху ~/Library/LaunchAgents
.
Далі я зареєстрував сценарій за допомогою
launchctl load ~/Library/LaunchAgents/sync.plist
Нарешті, щоб перевірити, що це працює, я розпочав роботу:
launchctl start net.madrat.utils.sync
- Нічого не трапилося. Ручне виконання rsync
команди в терміналі дає очікуваний результат.
Я досить впевнений, що робота була зареєстрована правильно, оскільки якщо я спробую розпочати неіснуючу роботу, я отримаю повідомлення про помилку (якого я не отримав у вищевказаній команді).
Що я зробив не так?
launchctl list
показав 1, але тільки після того, як я запустив агент вручну, використовуючиlaunchctl start
.