Problemas com script bash, inserções mysql e launchd

4

Estou desenvolvendo um sistema automatizado, que consiste em 3 partes: mysql, bash e launchd. O script Bash pega pastas de coisas relacionadas ao trabalho, zips, archives e coloca informações sobre elas no banco de dados localizado em um servidor MAMP local. Tudo funciona como esperado quando executo o script no terminal. Mas quando eu uso o Launchd para executar este script automaticamente, ele funciona sem erros e não coloca os valores no banco de dados.

Eu tentei criar logs de mensagens retornadas, mas os logs acabam vazios, pois o comando foi executado da maneira esperada.

Qualquer ajuda seria apreciada!

conteúdo do .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>

Eu fiz esse arquivo .plist apenas pesquisando na web.

Tanto quanto eu entendo o problema está no arquivo plist launchd. De alguma forma não dá o "intervalo" para usar o banco de dados mysql.

    
por Armandelis 17.12.2012 / 17:20

1 resposta

0

Na minha experiência, variações no script ou no comportamento executável geralmente resultam do ambiente (PATH, etc.). Por esse motivo, recomendo usar um script de wrapper para configurar o ambiente para o script ou executável de interesse e, em seguida, usar env -i para testar a execução do wrapper.

Ele também pode ajudar a remover o ambiente antes de configurar qualquer variável de ambiente necessária no script de wrapper.

Isso também é útil para o cron, Jenkins, Rundeck e muitas outras maneiras de invocar scripts ou executáveis.

    
por 27.12.2017 / 19:01