From deb869970d31ddd2c6cb4207169419063c586421 Mon Sep 17 00:00:00 2001 From: Mike Yuan Date: Tue, 9 Jan 2024 19:51:54 +0800 Subject: [PATCH] importd: use Type=notify --- src/import/importd.c | 25 ++++++++++++------------- units/systemd-importd.service.in | 1 + 2 files changed, 13 insertions(+), 13 deletions(-) diff --git a/src/import/importd.c b/src/import/importd.c index 8bc8a32866..3321155e84 100644 --- a/src/import/importd.c +++ b/src/import/importd.c @@ -12,6 +12,7 @@ #include "bus-polkit.h" #include "common-signal.h" #include "constants.h" +#include "daemon-util.h" #include "env-util.h" #include "fd-util.h" #include "float.h" @@ -1332,18 +1333,6 @@ static bool manager_check_idle(void *userdata) { return hashmap_isempty(m->transfers); } -static int manager_run(Manager *m) { - assert(m); - - return bus_event_loop_with_idle( - m->event, - m->bus, - "org.freedesktop.import1", - DEFAULT_EXIT_USEC, - manager_check_idle, - m); -} - static void manager_parse_env(Manager *m) { int r; @@ -1394,7 +1383,17 @@ static int run(int argc, char *argv[]) { if (r < 0) return r; - r = manager_run(m); + 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( + m->event, + m->bus, + "org.freedesktop.import1", + DEFAULT_EXIT_USEC, + manager_check_idle, + m); if (r < 0) return log_error_errno(r, "Failed to run event loop: %m"); diff --git a/units/systemd-importd.service.in b/units/systemd-importd.service.in index fc24a05098..daa93776e1 100644 --- a/units/systemd-importd.service.in +++ b/units/systemd-importd.service.in @@ -13,6 +13,7 @@ Documentation=man:systemd-importd.service(8) Documentation=man:org.freedesktop.import1(5) [Service] +Type=notify ExecStart={{LIBEXECDIR}}/systemd-importd BusName=org.freedesktop.import1 KillMode=mixed -- 2.25.1