Cron falha com status de saída 127 [duplicado]

7

Estou tentando fazer com que meu crontab execute algumas tarefas rake para um aplicativo rails, mas parece que ele sempre sai com o status 127, no meu syslog se parece com isso:

Jun  7 05:10:01 ip-10-170-122-226 CRON[15664]: (deploy) CMD (cd /home/deploy/apps/dashboard/current && bundle exec rake some:task
Jun  7 05:10:01 ip-10-170-122-226 CRON[15662]: (CRON) error (grandchild #15664 failed with exit status 127)

Parece que 127 é como "comando não encontrado erro" ou algo assim, então eu usei os caminhos completos para as bandejas, assim como o pacote foi /usr/local/bin/bundle , a tarefa é executada fora do cron apenas executá-lo no shell .

Meu crontab é simplesmente:

*/10 * * * * cd /home/deploy/apps/dashboard/current && bundle exec rake some:task

Será que o meu crontab precisa de #!/usr/bin ou algo no topo?

atualização

Para testar, parece que tudo corre bem:

*/1 * * * *  /usr/bin/touch /home/deploy/cron-test.txt

Então, isso me leva a pensar que é como uma coisa variável do PATH, mas eu não sei como obter o caminho correto vars lá, algum pensamento?

    
por JP Silvashy 07.06.2011 / 07:35

3 respostas

9

O status de saída 127 é definido por bash quando não consegue encontrar o comando (consulte Script avançado de bash ). Para tornar a depuração mais fácil, você deve colocar todas as coisas em um script. Certifique-se de que o script seja executável e comece com o nome e o caminho do intérprete:

#! /bin/bash
cd /.../ &&  next_command

Você deve ter a linha crontab semelhante a:

*/10 * * * * cd /home/deploy/apps/dashboard/current && /PATH_TO/bundle exec rake some:task

ou defina a variável PATH no crontab:

PATH=/bin:/usr/bin:/sbin:/usr/sbin:/PATH_TO_bundle
*/10 * * * * cd /home/deploy/apps/dashboard/current && /PATH_TO/bundle exec rake some:task
    
por 07.06.2011 / 23:51
1

Veja man 5 crontab como configurar o PATH para seus trabalhos do cron. p>     

por 07.06.2011 / 17:08
0

Dê uma olhada aqui: link talvez isso indique você na direção certa.

Normalmente, o que faço com tarefas cron é criar um arquivo de script, testar o script e depois colocar o script no cron.

Espero que isso ajude.

    
por 07.06.2011 / 14:44

Tags