2021-08-16 15:26:17 +02:00
|
|
|
# The naxalnet systemd service
|
2021-07-26 12:28:50 +02:00
|
|
|
# See man:systemd.service(5) and man:systemd.unit(5)
|
|
|
|
# before editing this file.
|
2021-05-10 11:45:42 +02:00
|
|
|
[Unit]
|
2021-08-16 15:26:17 +02:00
|
|
|
Description=Setup mesh networks
|
2021-06-06 07:55:37 +02:00
|
|
|
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
|
|
|
|
After=NetworkManager.service
|
|
|
|
After=wpa_supplicant.service
|
2021-05-10 11:45:42 +02:00
|
|
|
|
|
|
|
[Service]
|
|
|
|
Type=oneshot
|
|
|
|
RemainAfterExit=yes
|
2021-06-10 05:45:58 +02:00
|
|
|
Restart=on-failure
|
2021-07-26 12:28:50 +02:00
|
|
|
RestartSec=2sec
|
2021-06-15 10:30:48 +02:00
|
|
|
# IWD takes some time to find devices.
|
2021-08-15 11:32:28 +02:00
|
|
|
# If naxalnet is run before iwd finds devices,
|
2021-08-16 15:26:17 +02:00
|
|
|
# naxalnet cannot start a mesh network but exits without errors.
|
2021-08-15 11:32:28 +02:00
|
|
|
# TODO: Remove this line when naxalnet becomes a daemon.
|
2021-07-26 12:28:50 +02:00
|
|
|
ExecStartPre=/usr/bin/sleep 2
|
2021-05-22 11:44:16 +02:00
|
|
|
ExecStart=/usr/bin/naxalnet
|
2021-08-16 15:26:17 +02:00
|
|
|
# Reload systemd-networkd after naxalnet exits
|
|
|
|
ExecStartPost=/usr/bin/systemctl reload-or-restart systemd-networkd.service
|
|
|
|
# Delete the interfaces created
|
|
|
|
ExecStopPost=/usr/bin/networkctl delete bridge0 bat0
|
|
|
|
# Make python flush messages the moment print() is called.
|
|
|
|
# Without this env variable, python stores output in a
|
|
|
|
# buffer before flushing to stdout. But this is not needed
|
|
|
|
# when naxalnet runs as a systemd service.
|
|
|
|
Environment=PYTHONUNBUFFERED=1
|
2021-05-10 11:45:42 +02:00
|
|
|
|
|
|
|
[Install]
|
|
|
|
WantedBy=multi-user.target
|