LINUX.ORG.RU
решено ФорумAdmin

systemd и зависимость от сетевых интерфейсов

 , ,


0

1

При загрузке системы в Ubuntu 16.04 не стартует privoxy.

> sudo service privoxy status
● privoxy.service - Privacy enhancing HTTP Proxy
   Loaded: loaded (/lib/systemd/system/privoxy.service; enabled; vendor preset: enabled)
   Active: failed (Result: exit-code) since Сб 2016-10-08 01:03:36 MSK; 43s ago
  Process: 937 ExecStart=/usr/sbin/privoxy --pidfile $PIDFILE --user $OWNER $CONFIGFILE (code=exited, status=1/FAILURE)

окт 08 01:03:35 alex-desktop systemd[1]: Starting Privacy enhancing HTTP Proxy...
окт 08 01:03:36 alex-desktop systemd[1]: privoxy.service: Control process exited, code=exited status=1
окт 08 01:03:36 alex-desktop systemd[1]: Failed to start Privacy enhancing HTTP Proxy.
окт 08 01:03:36 alex-desktop systemd[1]: privoxy.service: Unit entered failed state.
окт 08 01:03:36 alex-desktop systemd[1]: privoxy.service: Failed with result 'exit-code'.
В логах самого сервера:
2016-10-08 00:58:58.106 7fc24a1a3700 Fatal error: can't bind to 192.168.13.1:8118: Cannot assign requested address
Из чего заключаю, что он стартует еще до подъема интерфейса.

Если я что-то и знаю о systemd то это то, что там есть какие-то зависимости. В fstab я их смог заюзать и порядок монтирования теперь ... э... есть. Да, все монтируется как надо вроде.

А вот как быть тут? Просто повесить на подъем enp3s6 рестарт прайвокси выглядит как-то костыльно. Как заставить его дэху подождать?

Скопируй юнит в /etc/systemd/system/ и поменяй там After=network.target на After=network-online.target

anonymous ()

Не надо ничего копировать.

sudo systemctl edit privoxy.service

[Unit]
After=network-online.target
Wants=network-online.target

surefire ★★★ ()
Последнее исправление: surefire (всего исправлений: 1)
Ответ на: комментарий от surefire

А если после обновления слетит?

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

Так оно в /etc/systemd/ запишет дроплет.

anonymous ()

Если используется /etc/network/interfaces, что является обычной практикой на сервере, то скорей всего network-online.target не поможет, так как оно поднимает сеть асинхронно. Если используется Network manager, то как говорят NetworkManager-wait-online.service работает, но мне пробовать не приходилось.
Автостарт openvpn (комментарий)
Я добавляю в сервис after rc-local.service, и так точно костылять не приходится и работает.
Вообще все сводится к тому, что нас подталкивают к использованию systemd-networkd, вот только конфигурация в /etc/network/interfaces намного удобней, и она уже работает. Если и переводить в дальнейшем придется, то salt нам в помощь.

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

Помогло. Работает, вроде. Но это же оно реагировать так будет на ЛЮБОЙ интерфейс. А можно настроить на определенный? Мне надо его на тот на котором ip 192.168.13.1

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

Нет, встроенных средств для этого в systemd нет. Только свой скрипт писать.

intelfx ★★★★★ ()

Нет, встроенных средств для этого в systemd нет. Только свой скрипт писать.

Азаза, волшебная пилюля опять оказалась куском кала...

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

Азаза, волшебная пилюля опять оказалась куском кала...

дык шоб не скучно было. фича аднака :)

може не в кассу Дорогой Уютненький Лорчик, расскажу ещё одну быль про systemd: в давние времена (в далёкой-предалёкой голактеге) автологин прописывали в /etc/inittab с жёсткой привязкой к runlevel-у. сейчас - каждый ?getty - отдельный сервис/юнит.. и собсно научным методом тыка проб и ошибок приходится подбирать условия запуска, чтобы .. лузер не взлетел до отработки скриптов iptables и т.п.. :trollface:

p.s.: кстати, если кто ещё сидит без иксов и хочет рюсскага йезыка в терминальчике/мутте/ssh/etc., то, (очередной) вариант выпиленной в /dev/null «kbd service» :

[Unit]
Description=Keyboard KBD Service
After=getty@tty1.service getty@tty2.service getty@tty3.service getty@tty4.service getty@tty5.service getty@tty6.service

[Service]
EnvironmentFile=-/etc/sysconfig/keyboard
ExecStart=/usr/bin/kbd $KEYTABLE

т.е. настраиваем клаву как обычно :)

anonymous ()
Ответ на: комментарий от anonymous_sama

подталкивают к использованию systemd-networkd

Ну я так и сделал. Юнит для интерфейса в три строчки, если DHCP, и чуть больше, если статика.

Тоже столкнулся с западлом из сабжа.

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