From: Martin Wilck <mwilck@xxxxxxxx> After sending "RELOADING=1" to systemd, a service must send "READY=1" before "STOPPING=1". Otherwise systemd will be confused and will not regard the service as stopped. Subsequent attempts to start multipathd via socket activation fail until systemd times out the reload operation. The problem can be reproduced by running "multipathd shutdown" quickly after "multipathd reconfigure". Signed-off-by: Martin Wilck <mwilck@xxxxxxxx> --- multipathd/main.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/multipathd/main.c b/multipathd/main.c index 3aff241..67160b9 100644 --- a/multipathd/main.c +++ b/multipathd/main.c @@ -210,9 +210,12 @@ static void do_sd_notify(enum daemon_status old_state, if (msg && !safe_sprintf(notify_msg, "STATUS=%s", msg)) sd_notify(0, notify_msg); - if (new_state == DAEMON_SHUTDOWN) + if (new_state == DAEMON_SHUTDOWN) { + /* Tell systemd that we're not RELOADING any more */ + if (old_state == DAEMON_CONFIGURE && startup_done) + sd_notify(0, "READY=1"); sd_notify(0, "STOPPING=1"); - else if (new_state == DAEMON_IDLE && old_state == DAEMON_CONFIGURE) { + } else if (new_state == DAEMON_IDLE && old_state == DAEMON_CONFIGURE) { sd_notify(0, "READY=1"); startup_done = true; } else if (new_state == DAEMON_CONFIGURE && startup_done) -- 2.33.0 -- dm-devel mailing list dm-devel@xxxxxxxxxx https://listman.redhat.com/mailman/listinfo/dm-devel