From 66020f48ea36d44fe461677c8dfa639400b9f561 Mon Sep 17 00:00:00 2001 From: Joachim Wiberg Date: Mon, 13 Nov 2023 04:37:03 +0100 Subject: [PATCH] Do not create PID conditions for services that do not support it Follow-up to issue #386 Signed-off-by: Joachim Wiberg --- plugins/pidfile.c | 4 ++++ system/10-hotplug.conf.in | 10 +++++----- 2 files changed, 9 insertions(+), 5 deletions(-) diff --git a/plugins/pidfile.c b/plugins/pidfile.c index 59795ad3..8ca5ca6c 100644 --- a/plugins/pidfile.c +++ b/plugins/pidfile.c @@ -80,6 +80,10 @@ static void pidfile_update_conds(char *dir, char *name, uint32_t mask) } dbg("Found svc %s for %s with pid %d", svc_ident(svc, NULL, 0), fn, svc->pid); + if (svc->notify != SVC_NOTIFY_PID) { + dbg("svc %s does not use PID readiness notification, skipping.", svc_ident(svc, NULL, 0)); + return; + } mkcond(svc, cond, sizeof(cond)); if (mask & (IN_CLOSE_WRITE | IN_ATTRIB | IN_MODIFY | IN_MOVED_TO)) { diff --git a/system/10-hotplug.conf.in b/system/10-hotplug.conf.in index 603a490f..49ea081b 100644 --- a/system/10-hotplug.conf.in +++ b/system/10-hotplug.conf.in @@ -23,11 +23,11 @@ service nowarn [S12345789] cgroup.system name:udevd notify:none pid:udevd log ud # Wait for udevd to start, then trigger coldplug events and module loading. # The last 'settle' call waits for it to finalize processing all uevents. -run nowarn if:udevd cgroup.init :1 [S] log udevadm settle -t 0 -- -run nowarn if:udevd cgroup.init :2 [S] log udevadm control --reload -- -run nowarn if:udevd cgroup.init :3 [S] log udevadm trigger -c add -t devices -- Requesting device events -run nowarn if:udevd cgroup.init :4 [S] log udevadm trigger -c add -t subsystems -- Requesting subsystem events -run nowarn if:udevd cgroup.init :5 [S] log udevadm settle -t 30 -- Waiting for udev to finish +run nowarn if:udevd cgroup.init :1 [S] log udevadm settle -t 0 -- +run nowarn if:udevd cgroup.init :2 [S] log udevadm control --reload -- +run nowarn if:udevd cgroup.init :3 [S] log udevadm trigger -c add -t devices -- Requesting device events +run nowarn if:udevd cgroup.init :4 [S] log udevadm trigger -c add -t subsystems -- Requesting subsystem events +run nowarn if:udevd cgroup.init :5 [S] log udevadm settle -t 30 -- Waiting for udev to finish # If udevd is not available, check for mdevd. Unlike plain 'mdev -df', the # mdevd-coldplug process exits when mdevd has completed. So the condition