From 33354ffb14b316da517b60a901b06a325177e6f7 Mon Sep 17 00:00:00 2001 From: Mike Yuan Date: Tue, 9 Jan 2024 19:59:02 +0800 Subject: [PATCH] localed: modernization --- src/locale/localed.c | 15 +++++++-------- units/systemd-localed.service.in | 1 + 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/src/locale/localed.c b/src/locale/localed.c index 8ce8c0d08fc..cf88da37ad9 100644 --- a/src/locale/localed.c +++ b/src/locale/localed.c @@ -15,6 +15,7 @@ #include "bus-polkit.h" #include "bus-unit-util.h" #include "constants.h" +#include "daemon-util.h" #include "kbd-util.h" #include "localed-util.h" #include "macro.h" @@ -647,26 +648,24 @@ static int run(int argc, char *argv[]) { if (r < 0) return r; - assert_se(sigprocmask_many(SIG_BLOCK, NULL, SIGTERM, SIGINT, -1) >= 0); - r = sd_event_default(&event); if (r < 0) return log_error_errno(r, "Failed to allocate event loop: %m"); (void) sd_event_set_watchdog(event, true); - r = sd_event_add_signal(event, NULL, SIGINT, NULL, NULL); + r = sd_event_set_signal_exit(event, true); if (r < 0) - return log_error_errno(r, "Failed to install SIGINT handler: %m"); - - r = sd_event_add_signal(event, NULL, SIGTERM, NULL, NULL); - if (r < 0) - return log_error_errno(r, "Failed to install SIGTERM handler: %m"); + return log_error_errno(r, "Failed to install SIGINT/SIGTERM handlers: %m"); r = connect_bus(&context, event, &bus); if (r < 0) return r; + r = sd_notify(false, NOTIFY_READY); + if (r < 0) + log_warning_errno(r, "Failed to send readiness notification, ignoring: %m"); + r = bus_event_loop_with_idle(event, bus, "org.freedesktop.locale1", DEFAULT_EXIT_USEC, NULL, NULL); if (r < 0) return log_error_errno(r, "Failed to run event loop: %m"); diff --git a/units/systemd-localed.service.in b/units/systemd-localed.service.in index 19383ae4239..4de89aa8ddd 100644 --- a/units/systemd-localed.service.in +++ b/units/systemd-localed.service.in @@ -15,6 +15,7 @@ Documentation=man:vconsole.conf(5) Documentation=man:org.freedesktop.locale1(5) [Service] +Type=notify BusName=org.freedesktop.locale1 CapabilityBoundingSet= ExecStart={{LIBEXECDIR}}/systemd-localed