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