Problemas ao obter o Cron para executar processos marcados como @reboot para usuários LDAP

2

Eu tenho um laboratório de computadores rodando o Ubuntu 9.10. A maioria das pessoas que fazem logon nesses computadores são usuários de um servidor LDAP e não de usuários locais. Descobrimos que, se um usuário LDAP tiver um crontab com uma entrada marcada para ser executada @reboot , o comando não será executado na reinicialização de uma máquina.

Tenho certeza de que isso acontece porque o daemon cron inicia antes que a rede esteja totalmente ativada, portanto, os crontabs de qualquer usuário LDAP não são carregados e executados ou verificados em @reboot . De fato, o cron ignorará os crontabs dos usuários LDAP inteiramente após uma reinicialização até que o usuário execute crontab -e novamente e salve, ou até que o daemon do cron seja reinicializado.

Conseguimos corrigir uma parte desse problema adicionando a seguinte linha ao / etc / crontab:

@reboot root /bin/sleep 45 && /etc/init.d/cron restart

Assim, quando o cron inicia o backup após a reinicialização, ele aguarda a rede se levantar e reinicia o daemon do cron. Isso corrige o problema de os crontabs não serem lidos para usuários LDAP. No entanto, como o daemon do cron está sendo reiniciado e não o computador, @reboot entradas são ignoradas.

Existe uma maneira de um usuário executar um comando ao reiniciar o daemon, em vez de reinicializar? Ou há uma solução melhor para esse problema geral?

Obrigado.

    
por Ben Torell 20.05.2010 / 20:19

1 resposta

1

Parece que você tem uma condição de corrida em que o cron está examinando suas guias e não encontra um usuário válido para algumas delas porque o servidor de rede / LDAP não pode ser acessado - Você precisa ter certeza de que sua lista de usuários está acessível antes O cron é iniciado.

Tente ajustar sua sequência RC para que o cron não seja iniciado até que a rede esteja totalmente pronta (seja reorganizando o rc.d ou marcando no script cron que ele requer que networking seja iniciado primeiro).

    
por 20.05.2010 / 20:52