0

I'm trying to launch an app inside a network namespace from a systemd service. I tried using NetworkNamespacePath= but when I use it all network requests fail. If I launch the app in ExecStart using ip netns exec it works, but it's not very clean and I have to reset the user using sudo. What am I doing wrong with NetworkNamespacePath=?

I don't think it should matter much but I'm running Ubuntu Server 20.04 LTS. This is my service file.

[Unit]
Description=My Service
# netns.service sets up the network namespace
After=network-online.target netns.service
Requires=network-online.target netns.service

[Service]
Type=simple
# The following doesn't work, app starts but every network request fails
NetworkNamespacePath=/run/netns/mynetns
User=user
Group=user
ExecStart=/usr/bin/app
# If I change it to this, it works
ExecStart=/usr/sbin/ip netns exec mynetns sudo -u user /usr/bin/app

[Install]
WantedBy=multi-user.target

Fr3ddyDev
  • 101

0 Answers0