Bug 32095

Summary: crond cannot run user crontab @reboot with systemd at boottime
Product: Sisyphus Reporter: Vladimir D. Seleznev <vseleznv>
Component: vixie-cronAssignee: placeholder <placeholder>
Status: CLOSED FIXED QA Contact: qa-sisyphus
Severity: normal    
Priority: P3 CC: glebfm, ldv, placeholder, shaba
Version: unstable   
Hardware: all   
OS: Linux   

Description Vladimir D. Seleznev 2016-05-13 16:55:46 MSK
crond не может запустить правило @reboot в пользовательском crontab'е во время загрузки системы если используется systemd. с init'ом проблема не воспроизводится. если после загрузки перезапустить crond с помощью `systemctl restart crond.service`, то правила @reboot выполняются.

Логи:

-- Subject: Unit crond.service has finished start-up
-- Unit crond.service has finished starting up.
May 11 14:06:05 host crond[701]: pam_nologin(crond:account): no conversation function
May 11 14:06:05 host crond[703]: pam_nologin(crond:account): no conversation function
May 11 14:06:05 host crond[702]: pam_nologin(crond:account): no conversation function
May 11 14:06:05 host crond[701]: (CRON) pam_acct_mgmt failed (Authentication failure)
May 11 14:06:05 host crond[702]: (CRON) pam_acct_mgmt failed (Authentication failure)
May 11 14:06:05 portlab.po.cs.msu.su crond[703]: (CRON) pam_acct_mgmt failed (Authentication failure)
Comment 1 Dmitry V. Levin 2016-05-17 11:41:32 MSK
systemd запускает crond слишком рано: /run/nologin к этому времени, видимо, уже создан, но ещё не удалён.
Comment 2 Vladimir D. Seleznev 2016-05-17 13:24:49 MSK
Наблюдения показывают, что это вероятностный процесс, что неудивительно: crond может запуститься и после удаления /run/nologin.
Comment 3 Dmitry V. Levin 2016-05-17 13:49:16 MSK
Поставить ему After=systemd-user-sessions.service ?
Comment 4 Alexey Shabalin 2016-05-17 15:34:49 MSK
(В ответ на комментарий №3)
> Поставить ему After=systemd-user-sessions.service ?

в https://github.com/systemd-cron/* используют
Requires=systemd-user-sessions.service
Comment 5 Dmitry V. Levin 2016-05-17 15:39:56 MSK
(In reply to comment #4)
> (В ответ на комментарий №3)
> > Поставить ему After=systemd-user-sessions.service ?
> 
> в https://github.com/systemd-cron/* используют
> Requires=systemd-user-sessions.service

systemd.git использует только After=systemd-user-sessions.service
Comment 6 Repository Robot 2016-05-19 18:32:54 MSK
vixie-cron-4.1.20060426-alt10 -> sisyphus:

* Thu May 19 2016 Dmitry V. Levin <ldv@altlinux> 4.1.20060426-alt10
- crond.service: fixed race condition that affected user crontabs
  (closes: #32095).