Intereting Posts
Как emacs могут быть настроены так, чтобы правильно принимать сочетания курсора Shift и Alt? Как узнать, какой ящик дерева устройств (dtb-файл) я использую? Где найти описания OID для SNMPv2 в Linux? Предотвращение зарядки аккумулятора Chromebook Crouton Debian xfce4 – Невозможно изменить язык! Как создать образ initrd на OpenSuSE linux? Неправильное смещение временной зоны. Как это исправить? (помощь с компилятором zic timezone) параметр таймаута чтения (-t) не работает? Raspberry pi беспроводная точка доступа TOR. Открытый VPN не подключается. Проблема с DNS Запустить второй X-сервер из X в качестве службы systemd Установите частоту дискретизации для одного источника менее в сочетании с последовательными цветовыми последовательностями предотвращает разрывы страниц Что предлагает Arch Linux? почему я не вижу интерфейс в Linux Debian Присвоить значение переменной в bash, исходящей из других команд

Почему моя система не работает в сети?

По этому вопросу и его ответам я добавил в свой служебный файл следующее:

Wants=network-online.target After=docker.service network.target network-online.target 

Я также запускаю:

 systemctl enable NetworkManager-wait-online.service systemd-networkd-wait-online.service 

И все же моя задача ExecStartPre которая использует git pull origin master прежнему не работает из-за того, что, по-видимому, связано с проблемой подключения.

 Mar 22 16:17:21 COMPUTER git[1983]: ssh: Could not resolve hostname github.com: Name or service not known Mar 22 16:17:21 COMPUTER git[1983]: fatal: Could not read from remote repository. 

Мне что-то не хватает? Есть ли еще одна услуга, которую я должен ждать, чтобы использовать git pull ? (В случае, если это актуально, я использую Ubuntu 16.10 и systemd 231.)

Первый шаг – определить, используете ли вы NetworkManager или systemd-networkd . Включите wait-online для той, которую вы используете (предполагая systemd-networkd для этого примера):

 systemctl enable systemd-networkd-wait-online.service 

Отправьте свое обслуживание после wait-online сервиса wait-online :

 [Unit] ... After=systemd-networkd-wait-online.service Requires=systemd-networkd-wait-online.service того, как [Unit] ... After=systemd-networkd-wait-online.service Requires=systemd-networkd-wait-online.service 

(требуется более строгий вариант wants , в этом случае кажется, что вам нужна жесткая зависимость).

Это должно привести к тому, что ваш сервис начнется после того, как сеть будет гарантирована.


В качестве альтернативы (или в сочетании с предыдущим решением) вы можете настроить службу на перезагрузку при ее неудаче с использованием параметра Restart= :

 [Unit] ... Restart=on-failure RestartSec=5 

https://www.freedesktop.org/software/systemd/man/systemd.service.html#Restart=

Это может быть лучший метод, потому что он не замедлит загрузку ( https://www.freedesktop.org/wiki/Software/systemd/NetworkTarget/#cutthecraphowdoimakenetwork.targetworkforme), используя wait-online чтобы значительно замедлить загрузку ), но если вы беспокоитесь о том, что может сделать служба, когда она не работает, перейдите на вариант 1 или и то, и другое.