Назад | Перейти на главную страницу

Проблемы с запуском Cron процессов с тегами @reboot для пользователей LDAP

У меня есть лаборатория компьютеров под управлением Ubuntu 9.10. Большинство людей, которые входят на эти компьютеры, являются пользователями сервера LDAP, а не локальными пользователями. Мы обнаружили, что если у пользователя LDAP есть crontab с записью, отмеченной для запуска @reboot, команда не будет запускаться после перезагрузки машины.

Я почти уверен, что это потому, что демон cron запускается до того, как сеть будет полностью запущена, поэтому crontab любых пользователей LDAP не загружаются, не запускаются и не проверяются на наличие @reboot. Фактически, cron будет полностью игнорировать crontab пользователей LDAP после перезагрузки, пока этот пользователь снова не запустит crontab -e и не сохранится, или пока демон cron не будет перезагружен.

Мы смогли решить одну часть этой проблемы, добавив следующую строку в / etc / crontab:

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

Таким образом, когда cron запускается при перезагрузке, он ждет, пока сеть загрузится, а затем перезапускает демон cron. Это решает проблему того, что crontabs вообще не читаются для пользователей LDAP. Однако, поскольку перезапускается демон cron, а не компьютер, @reboot записи игнорируются.

Есть ли у пользователя способ запустить команду при перезапуске демона, а не перезагрузить? Или есть лучшее решение этой общей проблемы?

Спасибо.

Похоже, у вас есть состояние гонки, когда cron сканирует свои вкладки и не находит допустимого пользователя для некоторых из них, потому что сервер сети / LDAP не может быть достигнут - вам необходимо убедиться, что ваш список пользователей доступен до запуска cron .

Попробуйте настроить последовательность RC таким образом, чтобы cron не запускался до тех пор, пока сеть не будет полностью запущена (либо переставив rc.d, либо отметив в скрипте cron, что он требует networking быть запущенным первым).