From 08e846e3d9103156eb3458e6731f978415a934b0 Mon Sep 17 00:00:00 2001 From: Peter Rajnoha Date: Thu, 15 Mar 2012 08:45:55 +0000 Subject: Remove dmeventd fifos on exit if they are not managed by systemd. --- daemons/dmeventd/dmeventd.c | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) (limited to 'daemons') diff --git a/daemons/dmeventd/dmeventd.c b/daemons/dmeventd/dmeventd.c index 0b3da1e4..ab9d23d3 100644 --- a/daemons/dmeventd/dmeventd.c +++ b/daemons/dmeventd/dmeventd.c @@ -1741,10 +1741,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) @@ -1955,10 +1963,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); -- cgit