LINUX.ORG.RU

Запустить сервис после того, как установлено сетевое соединение

 


0

1

Пытаюсь разобраться с 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, остальное только декорация.

★★★★★

Пробовал вместо Requires писать After - такая же хренотень.

Должно быть и то, и то

alpha ★★★★★
()
Ответ на: комментарий от provaton

Там надо вчитаться в ман, потому что интуитивное понимание промахивается.

requirement dependencies do not influence the order in which services are started or stopped

То есть require значит _требует_, но не говорит когда. _Требуемый_ процесс может стартовать параллельно с требующим.

В свою очередь After это «_если_ запускаем оба процесса, то только в таком порядке». Он не требует запустить процесс.

alpha ★★★★★
()
Ответ на: комментарий от alpha

Спасибо, теперь все стало понятнее.

provaton ★★★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.