systemd: Standartize on Wants=/After= for network

Message ID 20261029121134.93697-1-valter.jansons@gmail.com
State Superseded
Headers
Series systemd: Standartize on Wants=/After= for network |

Commit Message

Valters Jansons 29 Oct 2026, 12:11 p.m. UTC
Current Requires=network.target is very strict. Standard practice is to
set it as Wants= instead as a lighter "should". The application can
then see what is actually going on.

Furthermore, an After= should be in place so that Systemd properly stops
the updater prior to bringing the network stack offline.

Signed-off-by: Valters Jansons <valter.jansons@gmail.com>
---
 src/systemd/location-update.service.in | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)
  

Comments

Michael Tremer 29 Oct 2026, 3:49 p.m. UTC | #1
Hi Valters,

Thanks for the patches. I applied the two Debian ones (psycopg3 and docbook-xml), but I have held back the systemd one.

It sets Wants=network.target together with After=network-online.target. That doesn't work as intended: After= only orders the unit relative to network-online.target if something else pulls it in, and nothing does. So the updater can still start before the network is up. Your commit message says the aim is for the updater to be stopped before the network goes down, which is a shutdown-ordering goal. That is already covered by ordering against the target.

For a service that needs the network, the usual pair is:

  Wants=network-online.target
  After=network-online.target
 
I checked this with systemd-analyze verify and it passes cleanly. Could you resubmit it that way, with the commit message adjusted? Or tell me if you'd rather I apply it with that change myself.

Best,
Michael

> On 29 Oct 2026, at 12:11, Valters Jansons <valter.jansons@gmail.com> wrote:
> 
> Current Requires=network.target is very strict. Standard practice is to
> set it as Wants= instead as a lighter "should". The application can
> then see what is actually going on.
> 
> Furthermore, an After= should be in place so that Systemd properly stops
> the updater prior to bringing the network stack offline.
> 
> Signed-off-by: Valters Jansons <valter.jansons@gmail.com>
> ---
> src/systemd/location-update.service.in | 3 ++-
> 1 file changed, 2 insertions(+), 1 deletion(-)
> 
> diff --git a/src/systemd/location-update.service.in b/src/systemd/location-update.service.in
> index 50ba01f..b491a12 100644
> --- a/src/systemd/location-update.service.in
> +++ b/src/systemd/location-update.service.in
> @@ -1,7 +1,8 @@
> [Unit]
> Description=Automatic Location Database Updater
> Documentation=man:location(1) https://man-pages.ipfire.org/libloc/location.html
> -Requires=network.target
> +Wants=network.target
> +After=network-online.target
> 
> [Service]
> Type=oneshot
> -- 
> 2.56.0
> 
>
  

Patch

diff --git a/src/systemd/location-update.service.in b/src/systemd/location-update.service.in
index 50ba01f..b491a12 100644
--- a/src/systemd/location-update.service.in
+++ b/src/systemd/location-update.service.in
@@ -1,7 +1,8 @@ 
 [Unit]
 Description=Automatic Location Database Updater
 Documentation=man:location(1) https://man-pages.ipfire.org/libloc/location.html
-Requires=network.target
+Wants=network.target
+After=network-online.target
 
 [Service]
 Type=oneshot