Файл launchd запускается вручную, но не автоматически - PullRequest
3 голосов
/ 07 декабря 2010

Я написал файл plist и поместил его в / Library / LaunchDaemons

 <?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.dotcafe.DCDMySQLBackup</string>
 <key>ProgramArguments</key>
 <array>
  <string>/Users/robdando/Webserverbackup/grab.sh</string>
 </array>
 <key>StartInterval</key>
 <integer>900</integer>
</dict>
</plist>

Теперь я получил скрипт для файла из терминала вручную, но я не могу заставить его запускаться каждые 15 минут, так какМне требуется сценарий, который он вызывает, регистрирует на ftp-сервере и создает резервную копию базы данных mysql.

Заранее спасибо.

Ответы [ 2 ]

2 голосов
/ 08 декабря 2010

Вы загрузили работу в правильный launchd?Исходя из того, где вы разместили файл, похоже, что вы должны делать sudo launchctl load /Library/LaunchDaemons/com.dotcafe.DCDMySQLBackup.plist.После этого вы можете sudo launchctl start com.dotcafe.DCDMySQLBackup?

У меня были проблемы с заданием launchd на основе календаря, которое не запускалось, когда оно должно, даже если оно было загружено и работало нормально, когда я его редактировал.Я пытался запускать работу каждый день как мой пользователь, поэтому мое решение состояло в том, чтобы просто превратить ее в cron работу.

0 голосов
/ 07 декабря 2010

Вы не указали ключ Program, поэтому он ничего не может запустить.Возможно, вы хотите запустить grab.sh без аргументов.

Я думаю, что могут быть некоторые проблемы с разрешениями, поскольку вы не указали UserName.Кроме того, если ваш .bash_profile экспортирует какие-либо переменные окружения, которые используются программой, это может вызвать проблемы при запуске в launchd.(Предполагая, что grab.sh не использует относительные пути.) Вы можете создать сценарий запуска для вашей программы, который загружает .bash_profile, а затем запускает grab.sh.

...