LINUX.ORG.RU
ФорумAdmin

Аномалия с systemd

 , ,


0

1

Если руками запустить юнит, то всё нормально.Если запускать при загрузке, то будет:

[root@archlinux anon]# systemctl status tor-netns-init
● tor-netns-init.service - Network namespace from the onion router
     Loaded: loaded (/etc/systemd/system/tor-netns-init.service; enabled; vendor preset: disabled)
     Active: failed (Result: exit-code) since Fri 2020-01-24 22:59:37 UTC; 3min 21s ago
    Process: 341 ExecStart=/bin/ip netns add tor (code=exited, status=0/SUCCESS)
    Process: 342 ExecStart=/bin/ip link add dev tor0 mtu 16384 type veth peer name eth0 netns tor address 10:10:20:00:00:48 (code=exited, status=0/SUCCESS)
    Process: 349 ExecStart=/bin/ip -netns tor addr add 192.168.254.1/24 brd 192.168.254.255 dev eth0 (code=exited, status=0/SUCCESS)
    Process: 350 ExecStart=/bin/ip link set dev qemu0 netns tor (code=exited, status=1/FAILURE)
   Main PID: 350 (code=exited, status=1/FAILURE)

Jan 24 22:59:37 archlinux systemd[1]: Starting Network namespace from the onion router...
Jan 24 22:59:37 archlinux ip[350]: Cannot find device "qemu0"
Jan 24 22:59:37 archlinux systemd[1]: tor-netns-init.service: Main process exited, code=exited, status=1/FAILURE
Jan 24 22:59:37 archlinux systemd[1]: tor-netns-init.service: Failed with result 'exit-code'.
Jan 24 22:59:37 archlinux systemd[1]: Failed to start Network namespace from the onion router.
[root@archlinux anon]# systemctl status qemu-nat@0
● qemu-nat@0.service - Qemu user space nat interfaces
     Loaded: loaded (/etc/systemd/system/qemu-nat@.service; enabled; vendor preset: disabled)
    Drop-In: /etc/systemd/system/qemu-nat@0.service.d
             └─override.conf
     Active: active (running) since Fri 2020-01-24 22:59:37 UTC; 4min 1s ago
   Main PID: 354 (qemu-system-x86)
      Tasks: 3 (limit: 2368)
     Memory: 65.1M
     CGroup: /system.slice/system-qemu\x2dnat.slice/qemu-nat@0.service
             └─354 /usr/bin/qemu-system-x86_64 -display none -net user,id=user.0 -net tap,script=/bin/true,ifname=qemu0,id=user.1

Jan 24 22:59:37 archlinux systemd[1]: Started Qemu user space nat interfaces.
Jan 24 22:59:37 archlinux qemu-system-x86_64[354]: qemu-system-x86_64: warning: hub 0 with no nics

Сам унит:

[root@archlinux anon]# cat /etc/systemd/system/tor-netns-init.service 
[Unit]
Description=Network namespace from the onion router
After=network.target
Before=qemu-nat@0.service
Requires=qemu-nat@0.service

[Service]
Type=oneshot
TimeoutSec=10
RemainAfterExit=yes
ExecStart=/bin/ip netns add tor
ExecStart=/bin/ip link add dev tor0 mtu 16384 type veth peer name eth0 netns tor address 10:10:20:00:00:48
ExecStart=/bin/ip -netns tor addr add 192.168.254.1/24 brd 192.168.254.255 dev eth0
ExecStart=/bin/ip link set dev qemu0 netns tor
ExecStop=/bin/ip netns del tor

[Install]
WantedBy=multi-user.target

Я уже всё перепробывал в попытках заставить его нормально запускаться при запуске

★★★★★

Последнее исправление: ne-vlezay (всего исправлений: 1)

Сервис qemu-nat создаёт устройство с некой задержкой? Попробуй поставить ExecStart=/bin/sleep 5 первой командой, будет хотя бы понятно куда копать.

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

А вообще, я в сложных случаях рулю сетевыми интерфейсами через udev hook

SUBSYSTEM==«net», RUN+=«/…/udev-net.sh»

В котором

echo «$ACTION $INTERFACE»

и далее обработка в зависимости от ACTION и INTERFACE

sergej ★★★★★
()
Ответ на: комментарий от ne-vlezay

Странно, там же ничего не форкается. Мож он просто ругаться перестал или гонка один раз не сработала?

sergej ★★★★★
()

Before=qemu-nat@0.service

Cannot find device «qemu0»

То есть всё прекрасно работает. Именно так, как ты и попросил.

gremlin_the_red ★★★★★
()

а тут точно надо возиться с ip netns? Можно запустить сервис в контейнере nspawn, тогда systemd сам сконфигурирует нужные сетевые неймспейсы (ЕМНИП именно поэтому Поттеринг не хочет добавлять их настройку в юниты)

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