client, server systemd units: make Restart=always truly respected (#184)

Surprisingly, Restart=always may not _always_ restart the unit if it restarts too fast.

Set a combination of options which should make systemd truly restart innernet always.
See https://unix.stackexchange.com/q/289629/352972.

The `RestartSec=60` is the main and important one which would prevent systemd from ever failing
to restart innernet in the default settings (because with it it would never exceed the default
limit of 5 restarts in 10 seconds).

`StartLimitIntervalSec=0` option is a complementary one for explicitly disabling the logic, and
may be removed from this PR if deemed unnecessary.
pull/186/head
Matěj Laitl 2022-01-11 19:58:28 +00:00 committed by GitHub
parent 160451c8e5
commit 1b260823f9
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 6 additions and 0 deletions

View File

@ -8,6 +8,10 @@ PartOf=innernet.target
Type=simple Type=simple
ExecStart=/usr/bin/innernet up %i --daemon --interval 60 ExecStart=/usr/bin/innernet up %i --daemon --interval 60
Restart=always Restart=always
# When the daemon exits, wait this amount of secs before restarting. Used to prevent StartLimitBurst
# (5 by default) restarts happening within StartLimitIntervalSec (10 by default) after which systemd
# would refrain from restarting innernet anymore.
RestartSec=10
[Install] [Install]
WantedBy=multi-user.target WantedBy=multi-user.target

View File

@ -8,6 +8,8 @@ Type=simple
Environment="RUST_LOG=info" Environment="RUST_LOG=info"
ExecStart=/usr/bin/innernet-server serve %i ExecStart=/usr/bin/innernet-server serve %i
Restart=always Restart=always
# When the daemon exits, wait this amount of secs before restarting instead of default 100ms.
RestartSec=1
[Install] [Install]
WantedBy=multi-user.target WantedBy=multi-user.target