Пытаюсь разобраться с systemd, на первом достаточно тривиальном действии получаю затык. Задача такова - после того, как установлено сетевое соединение запустить ntpdate.
Написал следующий файл сервиса:
[Unit]
Description=Sync Time
Requires=network-online.target
[Service]
ExecStart=/usr/bin/ntpdate ntp.ubuntu.com
[Install]
WantedBy=multi-user.target
Установил его с помощью systemctl enable. Но получается следующая хрень
dynatos# systemctl status network-online.target
network-online.target - Network is Online
Loaded: loaded (/usr/lib/systemd/system/network-online.target; static)
Active: active since Fri 2013-07-05 03:37:03 EEST; 5min ago
dynatos# systemctl status sync-time.service
sync-time.service - Sync Time
Loaded: loaded (/etc/systemd/system/sync-time.service; enabled)
Active: failed (Result: exit-code) since Fri 2013-07-05 03:36:44 EEST; 6min ago
Process: 315 ExecStart=/usr/bin/ntpdate ntp.ubuntu.com (code=exited, status=1/FAILURE)
Как можно увидеть, network-online.target был достигнут в 03:37:03, тогда как sync-time.service был запущен в 03:36:44. Почему так? Ведь я ж прописал зависимость, и по логике вещей sync-time.service должен быть запущен уже после того, как network-online.target будет достигнут. Пробовал вместо Requires писать After - такая же хренотень.
Просьба не предлагать решить проблему с помощью ntpd, задача разобраться с systemd, остальное только декорация.