# 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 # 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] 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 # Reload systemd-networkd after naxalnet exits ExecStartPost=/usr/bin/networkctl reload # Delete all files in /run/systemd/network ExecStop=/usr/bin/find /run/systemd/network -type f -delete # Delete the interfaces created... ExecStopPost=/usr/bin/networkctl delete bridge0 bat0 # ... and reload the configuration files. ExecStopPost=/usr/bin/networkctl reload # Make python flush messages instead of buffering. # When reading the systemd journal, we need to see the messages # in the exact order. There will suddenly be a lot of messages # from naxalnet, networkd, iwd and resolved. When buffering is on, # we won't see the messages from naxalnet in the order they were # printed. This, among other problems, make it hard while debugging. # This will no longer be needed when naxalnet sends its messages # directly to the systtemd journal instead of stdout. Environment=PYTHONUNBUFFERED=1 [Install] WantedBy=multi-user.target