From df95905c2d28784ba2aab5cf35cd9bc2eceaef59 Mon Sep 17 00:00:00 2001 From: John Crispin Date: Tue, 1 Oct 2024 10:07:25 +0200 Subject: [PATCH] do not restart the mpsk daemon upon cfg reload Signed-off-by: John Crispin --- renderer/renderer.uc | 2 ++ renderer/templates/services/mpsk.uc | 2 +- renderer/ucentral.uc | 7 +++++++ 3 files changed, 10 insertions(+), 1 deletion(-) diff --git a/renderer/renderer.uc b/renderer/renderer.uc index c3f6f89..8021bfe 100644 --- a/renderer/renderer.uc +++ b/renderer/renderer.uc @@ -671,6 +671,8 @@ let services = { if (!this.state[name]) { if (state == 'early') this.state[name] = 'early'; + else if (state == 'no-restart') + this.state[name] = 'no-restart'; else this.state[name] = state ? true : false; } diff --git a/renderer/templates/services/mpsk.uc b/renderer/templates/services/mpsk.uc index d563582..94baef4 100644 --- a/renderer/templates/services/mpsk.uc +++ b/renderer/templates/services/mpsk.uc @@ -1,3 +1,3 @@ {% -services.set_enabled("mpskd", services.lookup_ssids_by_mpsk()); +services.set_enabled("mpskd", services.lookup_ssids_by_mpsk() ? 'no-restart' : false); %} diff --git a/renderer/ucentral.uc b/renderer/ucentral.uc index 2f13db4..9f30cab 100755 --- a/renderer/ucentral.uc +++ b/renderer/ucentral.uc @@ -18,9 +18,15 @@ inputfile.close(); let logs = []; function set_service_state(state) { + let services = ubus.call('service', 'list'); for (let service, enable in renderer.services_state()) { if (enable != state) continue; + if (enable == 'no-restart') + if (services[service] && services[service]?.instances[service]?.running) { + printf("%s is already running\n", service); + continue; + } printf("%s %s\n", service, enable ? "starting" : "stopping"); system(sprintf("/etc/init.d/%s %s", service, (enable || enable == 'early') ? "restart" : "stop")); } @@ -95,6 +101,7 @@ try { } set_service_state(true); + set_service_state('no-restart'); ubus.call('mpsk', 'flush'); } else { error = 1;