All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] Remove fifos on dmeventd shutdown
@ 2012-03-14 14:23 Peter Rajnoha
  2012-03-15  8:32 ` Petr Rockai
  2012-03-15 11:33 ` Alasdair G Kergon
  0 siblings, 2 replies; 3+ messages in thread
From: Peter Rajnoha @ 2012-03-14 14:23 UTC (permalink / raw)
  To: lvm-devel

I think we should clean these fifos properly (if not using systemd
activation where they are maintained by systemd itself).

Also, there's missing SIGTERM signal handler registration for the case
we run in foreground - it leaves the dmeventd.pid in filesystem then.
(..it would leave the fifos behind as well)

Peter
---
 daemons/dmeventd/dmeventd.c |   13 +++++++++++--
 1 files changed, 11 insertions(+), 2 deletions(-)

diff --git a/daemons/dmeventd/dmeventd.c b/daemons/dmeventd/dmeventd.c
index b61fb8b..b28816e 100644
--- a/daemons/dmeventd/dmeventd.c
+++ b/daemons/dmeventd/dmeventd.c
@@ -1735,10 +1735,18 @@ out:
 }
 #endif
 
-static void remove_lockfile(void)
+static void _remove_files_on_exit(void)
 {
 	if (unlink(DMEVENTD_PIDFILE))
 		perror(DMEVENTD_PIDFILE ": unlink failed");
+
+	if (!_systemd_activation) {
+		if (unlink(DM_EVENT_FIFO_CLIENT))
+			perror(DM_EVENT_FIFO_CLIENT " : unlink failed");
+
+		if (unlink(DM_EVENT_FIFO_SERVER))
+			perror(DM_EVENT_FIFO_SERVER " : unlink failed");
+	}
 }
 
 static void _daemonize(void)
@@ -1949,10 +1957,11 @@ int main(int argc, char *argv[])
 	if (dm_create_lockfile(DMEVENTD_PIDFILE) == 0)
 		exit(EXIT_FAILURE);
 
-	atexit(remove_lockfile);
+	atexit(_remove_files_on_exit);
 	(void) dm_prepare_selinux_context(NULL, 0);
 
 	/* Set the rest of the signals to cause '_exit_now' to be set */
+	signal(SIGTERM, &_exit_handler);
 	signal(SIGINT, &_exit_handler);
 	signal(SIGHUP, &_exit_handler);
 	signal(SIGQUIT, &_exit_handler);



^ permalink raw reply related	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2012-03-15 11:33 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2012-03-14 14:23 [PATCH] Remove fifos on dmeventd shutdown Peter Rajnoha
2012-03-15  8:32 ` Petr Rockai
2012-03-15 11:33 ` Alasdair G Kergon

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.