4

Я занимаюсь разработкой автоматизированной системы, которая состоит из 3 частей: mysql, bash и launchd. Скрипт Bash берет папки с рабочими материалами, архивами и архивами и помещает информацию о них в базу данных, которая находится на локальном сервере MAMP. Все работает как положено, когда я запускаю скрипт из терминала. Но когда я использую Launchd для автоматического запуска этого скрипта, он работает без ошибок и не помещает значения в базу данных.

Я пытался вести журналы возвращаемых сообщений, но журналы в итоге оказались пустыми, поскольку команда выполнялась так, как она должна была.

Любая помощь будет оценена!

Содержание .plist

<?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.adevo.ari.zip</string>

  <key>ProgramArguments</key>
  <array>
    <string>/Volumes/Archive-Plus/B-ARCHIVE-PLUS/ZZ_UTILITY_FOLDER/Compress.sh</string>
  </array>

  <key>Nice</key>
  <integer>1</integer>

  <key>StartInterval</key>
  <integer>120</integer>

  <key>RunAtLoad</key>
  <true/>

</dict>
</plist>

Я сделал этот файл .plist, просто выполнив поиск в Интернете.

Насколько я понимаю, проблема в файле launchd plist. Это как-то не дает "диапазон" для использования базы данных mysql.

1 ответ1

0

По моему опыту, различия в поведении сценариев или исполняемых файлов часто происходят из среды (PATH и т.д.) По этой причине я настоятельно рекомендую использовать сценарий оболочки для настройки среды для интересующего сценария или исполняемого файла, а затем использовать env -i для проверки выполнения оболочки.

Это также может помочь очистить среду перед настройкой любых необходимых переменных среды в сценарии оболочки.

Это также полезно для cron, Jenkins, Rundeck и многих других способов вызова скриптов или исполняемых файлов.

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