Служба Ubuntu 16.04 systemd ожидает завершения dhclient при использовании etc / network / interfaces

У меня есть 16.04 Desktop box, который подключается к Интернету через WiFi. Для удобства удаленного управления wlan0 настраивается с помощью /etc/network/interfaces вместо сетевого менеджера.

У меня есть служба systemd, которая включена для запуска при загрузке. Эта служба настроена на запуск после default.target следующим образом:

[Unit] After=default.target [Service] Type=simple ExecStart=/usr/bin/node main.js" Restart=always [Install] WantedBy=default.target

Эта служба запускается немедленно, если я загружаю ящик в диапазоне его Wi-Fi сети, потому что dhclient немедленно получает IP-адрес. Но если я загружу свою систему, где она не сможет попасть на Wi-Fi, моя служба сидит и ждет, пока dhclient не сдастся, прежде чем начать. Эта служба ждет точно 300 секунд, указанных в строфе /etc/dhclient/dhclient.conf timeout 300.

Мое понимание After=default.target состояло в том, что он не будет ждать в сети. After=network.target - инструмент для этого. Если я настрою свой Wi-Fi с помощью Network Manager вместо /etc/network/interfaces, служба запускается немедленно, независимо от доступности сети.

Как я могу запустить свою службу независимо от статуса dhclient, все еще используя /etc/network/interfaces?

1
задан 4 January 2018 в 01:04

3 ответа

Ответ, похоже, заключается в использовании таинственного выражения allow-hotplug в /etc/network/interfaces, как я узнал из https://askubuntu.com/a/868445/358498:

allow-hotplug wlan0
iface wlan0 inet dhcp
...

systemd больше не ждет в сети ударов службы, которая зависит от default.target. Почему allow-hotplug делает такую ​​разницу немного неясной для меня, поскольку в моей системе не происходит истинного события «hotplug». https://askubuntu.com/a/868445/358498 говорит:

Документация о том, что разрешает-hotplug на самом деле, мало. (довольно хорошая страница руководства, BTW) подразумевает, что ifup откажется вызывать интерфейс, если не установлен параметр allow-hotplug; но если сеть запускается через /etc/init.d/networking, начните в любом случае, почему происходят разные вещи в зависимости от того, присутствует ли allow-hotplug? Это все очень запутанно, но, честное слово, вам нужно разрешить горячее соединение, если вы используете PCMCIA или Cardbus (или, возможно, USB).
0
ответ дан 22 May 2018 в 15:46

Ответ, похоже, заключается в использовании таинственного выражения allow-hotplug в /etc/network/interfaces, как я узнал из https://askubuntu.com/a/868445/358498:

allow-hotplug wlan0 iface wlan0 inet dhcp ...

systemd больше не ждет в сети ударов службы, которая зависит от default.target. Почему allow-hotplug делает такую ​​разницу немного неясной для меня, поскольку в моей системе не происходит истинного события «hotplug». https://askubuntu.com/a/868445/358498 говорит:

Документация о том, что разрешает-hotplug на самом деле, мало. (довольно хорошая страница руководства, BTW) подразумевает, что ifup откажется вызывать интерфейс, если не установлен параметр allow-hotplug; но если сеть запускается через /etc/init.d/networking, начните в любом случае, почему происходят разные вещи в зависимости от того, присутствует ли allow-hotplug? Это все очень запутанно, но, честное слово, вам нужно разрешить горячее соединение, если вы используете PCMCIA или Cardbus (или, возможно, USB).
1
ответ дан 17 July 2018 в 23:55

Ответ, похоже, заключается в использовании таинственного выражения allow-hotplug в /etc/network/interfaces, как я узнал из https://askubuntu.com/a/868445/358498:

allow-hotplug wlan0 iface wlan0 inet dhcp ...

systemd больше не ждет в сети ударов службы, которая зависит от default.target. Почему allow-hotplug делает такую ​​разницу немного неясной для меня, поскольку в моей системе не происходит истинного события «hotplug». https://askubuntu.com/a/868445/358498 говорит:

Документация о том, что разрешает-hotplug на самом деле, мало. (довольно хорошая страница руководства, BTW) подразумевает, что ifup откажется вызывать интерфейс, если не установлен параметр allow-hotplug; но если сеть запускается через /etc/init.d/networking, начните в любом случае, почему происходят разные вещи в зависимости от того, присутствует ли allow-hotplug? Это все очень запутанно, но, честное слово, вам нужно разрешить горячее соединение, если вы используете PCMCIA или Cardbus (или, возможно, USB).
1
ответ дан 24 July 2018 в 17:07

Другие вопросы по тегам:

Похожие вопросы: