This fixed the following dependency loop that could occur when the system was booting up: 1. NetworkManager configures a network interface and fires off the clatd dispatcher script. 2. The dispatcher scripts tries to restart `clatd.service`. 3. However, `clatd.service` cannot be (re)started at this point because its dependency `network-online.target` has not yet been reached. 4. Therefore, the `systemctl restart clatd.service` command in the dispatcher script blocks, waiting for `network-online.target` to be reached. 5. But that won't happen until the dispatcher scripts finishes... Adding `--no-block` allows the dispatcher script to finish immediately without waiting for the restart to complete (instead, systemd will do it in the background once `network-online.target` has been reached). Furthermore, since `clatd.service` may end up being restarted several times during a boot process (especially on a system with many network interfaces handled by NetworkManager), it is also at risk of inadvertently triggering the restart rate-limiting feature in systemd, so disable that while we're at it. Closes #22. Thanks to @patrakov for the report!
23 lines
438 B
Plaintext
23 lines
438 B
Plaintext
#
|
|
# clatd service file for systemd
|
|
#
|
|
# Install it to: /etc/systemd/system/clatd.service
|
|
# Enable it with: systemctl enable clatd.service
|
|
# Start it with: systemctl start clatd.service
|
|
#
|
|
# Written by Tore Anderson <tore@fud.no>
|
|
#
|
|
|
|
[Unit]
|
|
Description=464XLAT CLAT daemon
|
|
Documentation=man:clatd(8)
|
|
After=network-online.target
|
|
StartLimitIntervalSec=0
|
|
|
|
[Service]
|
|
Type=simple
|
|
ExecStart=/usr/sbin/clatd
|
|
|
|
[Install]
|
|
WantedBy=multi-user.target
|