Problems getting Cron to run processes tagged @reboot for LDAP users

Posted by Ben Torell on Server Fault See other posts from Server Fault or by Ben Torell
Published on 2010-05-20T18:19:44Z Indexed on 2010/05/20 18:32 UTC
Read the original article Hit count: 350

Filed under:
|
|
|
|

I have a lab of computers running Ubuntu 9.10. Most of the people who log on to these computers are users from an LDAP server, and not local users. We discovered that if an LDAP user has a crontab with an entry marked to be run @reboot, the command will not actually run upon the reboot of a machine.

I'm pretty sure that this is because the cron daemon starts before networking is fully up, so the crontabs of any LDAP users aren't loaded and run or checked for @reboot. In fact, cron will ignore LDAP users' crontabs entirely after a reboot until that user runs crontab -e again and saves, or until the cron daemon is rebooted.

We were able to fix one part of this problem by adding the following line to /etc/crontab:

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

Thus, when cron starts back up upon a reboot, it waits for networking to get up, then restarts the cron daemon. That fixes the problem of crontabs not being read at all for LDAP users. However, since it's the cron daemon being restarted and not the computer, @reboot entries are ignored.

Is there a way for a user to make a command run upon restarting the daemon, rather than a reboot? Or is there a better solution to this overall problem?

Thanks.

© Server Fault or respective owner

Related posts about cron

Related posts about crontab