Cron job só executa após logado

Iniciado por amelotti, 03 de Fevereiro de 2010, 11:24

tópico anterior - próximo tópico

amelotti

Pessoal,

tenho um job agendado no cron, para rodar a cada hora, que verifica se uma determinada aplicação está no ar. Se não está, ela inicia ela. É uma espécie de watchdog. Porém, percebi que quando o servidor reinicia o job aparentemente não é executado sendo que eu preciso logar (tenho feito via ssh) para que o job seja executado.
Alguém tem idéia de qual pode ser o problema?

[]'s

Luiz

navegantesdailusao

Olá é pra fazer backup ne?

instala o rsync é mas rapido e simples


abs
J.E.S.U.S. - Juntos Estaremos Sendo Um Só.

amelotti

Não, não é pra fazer backup. É um script que verifica se um determinado processo está no ar e o inicia caso não esteja. Mas ele aparentemente só roda depois que o usuário que o agendou no cron loga no sistema. Isso não é estranho?
e, independente de ser um script de backup ou não, alguém sabe me dizer o porque desse comportamento?

[]'s

slkslk

#3
Isso não faz sentido nenhum na minha opinião! Tenho scripts que correm em ubuntu server em que inclusivamente quando falha a electricidade e há arranque automatico pela board, os scripts funcionam na mesma. E claro que ninguém tem de fazer login....

Em primeiro lugar se não o tem, crie o utilizador root (sudo passwd root)
coloque o script no /usr/bin
Dê-lhe permissões de 770 root/root
No crontab adicione a linha, por ex.

00-59/1 * * * * root nome-do-script

Essa linha vai correr o script todos os minutos.

Se funcionar assim é porque foi um problema de permissões, mas também é possível fazê-lo com outros utilizadores. Tem de ter no entanto muito cuidado com as permissões da directoria, do ficheiro, os locais em que ele vai trabalhar, etc. Senão vai dar um erro invisível de permissão negada e não corre. Eu faço os backups de email dos utilizadores com o utilizador especificado no crontab em servidores mapeados, mas tem de ser bem pensado o esquema de permissões para funcionar sem problemas. Se precisar de ajuda nessa parametrização, poste o script, o crontab e explique exactamente o que pretende fazer que eu dou-lhe uma mão. Contudo parece-me se bem percebi a ideia, que o root é o que deve ser usado.

Cumps
"Carpe diem, quam minimum credula postero."
(Aproveite o dia, acredite o mínimo possível no amanhã), Horácio, Odes I,11,8