From c0a1431f7815355f08a5f5827d5fe114246c17e3 Mon Sep 17 00:00:00 2001 From: Richard Hansen Date: Tue, 14 May 2024 20:55:33 -0400 Subject: [PATCH 1/3] systemd: Use `Type=exec` instead of `fork` When forking, ddclient redirects STDERR and STDOUT to `/dev/null`, which prevents useful information from appearing in the systemd journal (`journalctl`). --- sample-etc_systemd.service | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/sample-etc_systemd.service b/sample-etc_systemd.service index cd70712..7ef0675 100644 --- a/sample-etc_systemd.service +++ b/sample-etc_systemd.service @@ -4,9 +4,8 @@ Wants=network-online.target After=network-online.target nss-lookup.target [Service] -Type=forking -PIDFile=/run/ddclient.pid -ExecStart=/usr/bin/ddclient +Type=exec +ExecStart=/usr/bin/ddclient --daemon 5m --foreground [Install] WantedBy=multi-user.target From 509ea8745accc41d35a175b1ebfbb17adee5adf6 Mon Sep 17 00:00:00 2001 From: Richard Hansen Date: Tue, 14 May 2024 21:23:22 -0400 Subject: [PATCH 2/3] systemd: Set `Restart=on-failure` --- sample-etc_systemd.service | 1 + 1 file changed, 1 insertion(+) diff --git a/sample-etc_systemd.service b/sample-etc_systemd.service index 7ef0675..9e8cf14 100644 --- a/sample-etc_systemd.service +++ b/sample-etc_systemd.service @@ -6,6 +6,7 @@ After=network-online.target nss-lookup.target [Service] Type=exec ExecStart=/usr/bin/ddclient --daemon 5m --foreground +Restart=on-failure [Install] WantedBy=multi-user.target From 21de3cbc96acc2f6e219e45e8c4634750e30a049 Mon Sep 17 00:00:00 2001 From: Richard Hansen Date: Tue, 14 May 2024 21:26:35 -0400 Subject: [PATCH 3/3] systemd: Make it easier to override the daemon interval --- sample-etc_systemd.service | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/sample-etc_systemd.service b/sample-etc_systemd.service index 9e8cf14..8de0cb4 100644 --- a/sample-etc_systemd.service +++ b/sample-etc_systemd.service @@ -5,7 +5,8 @@ After=network-online.target nss-lookup.target [Service] Type=exec -ExecStart=/usr/bin/ddclient --daemon 5m --foreground +Environment=daemon_interval=5m +ExecStart=/usr/bin/ddclient --daemon ${daemon_interval} --foreground Restart=on-failure [Install]