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.