# The naxalnet systemd service # See man:systemd.service(5) and man:systemd.unit(5) # before editing this file. [Unit] Description=Setup mesh networks Requires=systemd-networkd.service Requires=iwd.service Wants=systemd-resolved.service After=iwd.service After=systemd-networkd.service After=systemd-resolved.service # Stops NetworkManager and wpa_supplicant if already running Conflicts=NetworkManager.service Conflicts=wpa_supplicant.service # This stops networkmanager and wpa_supplicant when naxalnet is enabled After=NetworkManager.service After=wpa_supplicant.service [Service] # TODO: change to notify when naxalnet becomes a daemon Type=oneshot RemainAfterExit=yes Restart=on-failure RestartSec=2sec # IWD takes some time to find devices. # If naxalnet is run before iwd finds devices, # naxalnet cannot start a mesh network but exits without errors. # So, we give a 2s delay. ExecStartPre=/usr/bin/sleep 2 ExecStart=/usr/bin/naxalnet --systemd # Reload systemd-networkd after naxalnet exits ExecStartPost=/usr/bin/networkctl reload # Delete all files starting with mesh.* in /run/systemd/network ExecStop=/usr/bin/find /run/systemd/network -type f -delete -name "mesh.*" # Delete the interfaces created... ExecStopPost=/usr/bin/networkctl delete bridge0 bat0 # ... and reload the configuration files. ExecStopPost=/usr/bin/networkctl reload # Disable python buffering Environment=PYTHONUNBUFFERED=1 [Install] WantedBy=multi-user.target