From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 3606 invoked by alias); 20 Mar 2009 20:45:06 -0000 Received: (qmail 3592 invoked by alias); 20 Mar 2009 20:45:05 -0000 X-SWARE-Spam-Status: No, hits=-1.6 required=5.0 tests=AWL,BAYES_00,J_CHICKENPOX_43,SPF_HELO_PASS X-Spam-Status: No, hits=-1.6 required=5.0 tests=AWL,BAYES_00,J_CHICKENPOX_43,SPF_HELO_PASS X-Spam-Check-By: sourceware.org X-Spam-Checker-Version: SpamAssassin 3.2.5 (2008-06-10) on bastion.fedora.phx.redhat.com Subject: cluster: STABLE3 - rgmanager: Remove pid file on clean/normal exit To: cluster-cvs-relay@redhat.com X-Project: Cluster Project X-Git-Module: cluster.git X-Git-Refname: refs/heads/STABLE3 X-Git-Reftype: branch X-Git-Oldrev: 11b4578dc96e3412489ec94547f46fb44b691913 X-Git-Newrev: 8dacf8c1365734b9c59a956d0dc3ef373a85ef8a From: Lon Hohberger Message-Id: <20090320204435.E04171202D3@lists.fedorahosted.org> Date: Fri, 20 Mar 2009 20:45:00 -0000 X-Scanned-By: MIMEDefang 2.58 on 172.16.52.254 Mailing-List: contact cluster-cvs-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Post: List-Help: , Sender: cluster-cvs-owner@sourceware.org X-SW-Source: 2009-q1/txt/msg00857.txt.bz2 Gitweb: http://git.fedorahosted.org/git/cluster.git?p=cluster.git;a=commitdiff;h=8dacf8c1365734b9c59a956d0dc3ef373a85ef8a Commit: 8dacf8c1365734b9c59a956d0dc3ef373a85ef8a Parent: 11b4578dc96e3412489ec94547f46fb44b691913 Author: Lon Hohberger AuthorDate: Fri Mar 20 16:43:27 2009 -0400 Committer: Lon Hohberger CommitterDate: Fri Mar 20 16:43:27 2009 -0400 rgmanager: Remove pid file on clean/normal exit Signed-off-by: Lon Hohberger --- rgmanager/src/clulib/daemon_init.c | 19 +++++++++++++++---- rgmanager/src/daemons/main.c | 2 ++ 2 files changed, 17 insertions(+), 4 deletions(-) diff --git a/rgmanager/src/clulib/daemon_init.c b/rgmanager/src/clulib/daemon_init.c index 234c780..bbf7d48 100644 --- a/rgmanager/src/clulib/daemon_init.c +++ b/rgmanager/src/clulib/daemon_init.c @@ -38,6 +38,7 @@ int check_process_running(char *prog, pid_t * pid); */ static void update_pidfile(char *prog); static int setup_sigmask(void); +static char pid_filename[PATH_MAX]; int @@ -149,14 +150,13 @@ update_pidfile(char *prog) { FILE *fp = NULL; char *cmd; - char filename[PATH_MAX]; - memset(filename, 0, PATH_MAX); + memset(pid_filename, 0, PATH_MAX); cmd = basename(prog); - snprintf(filename, sizeof (filename), "/var/run/%s.pid", cmd); + snprintf(pid_filename, sizeof (pid_filename), "/var/run/%s.pid", cmd); - fp = fopen(filename, "w"); + fp = fopen(pid_filename, "w"); if (fp == NULL) { exit(1); } @@ -223,3 +223,14 @@ daemon_init(char *prog) //mlockall(MCL_CURRENT | MCL_FUTURE); } + + +void +daemon_cleanup(void) +{ + if (!strlen(pid_filename)) + return; + + unlink(pid_filename); + memset(pid_filename, 0, sizeof(pid_filename)); +} diff --git a/rgmanager/src/daemons/main.c b/rgmanager/src/daemons/main.c index 6a1fe0a..af55987 100644 --- a/rgmanager/src/daemons/main.c +++ b/rgmanager/src/daemons/main.c @@ -32,6 +32,7 @@ void set_transition_throttling(int); void node_event(int, int, int, int); void node_event_q(int, int, int, int); int daemon_init(char *); +void daemon_cleanup(void); void kill_resource_groups(void); void set_my_id(int); void flag_shutdown(int sig); @@ -1106,5 +1107,6 @@ main(int argc, char **argv) /*malloc_dump_table(); */ /* Only works if alloc.c us used */ /*malloc_stats();*/ + daemon_cleanup(); exit(0); }