From 2d78d3451426d98413c7a4049302aa89fee5990d Mon Sep 17 00:00:00 2001 From: Art Cancro Date: Mon, 28 Feb 2005 02:25:30 +0000 Subject: [PATCH] * added pid file writing --- citadel/ChangeLog | 4 +++- citadel/citserver.c | 11 +++++++++++ 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/citadel/ChangeLog b/citadel/ChangeLog index 22970ad72..1008ece62 100644 --- a/citadel/ChangeLog +++ b/citadel/ChangeLog @@ -1,4 +1,7 @@ $Log$ + Revision 641.7 2005/02/28 02:25:29 ajc + * added pid file writing + Revision 641.6 2005/02/27 15:36:28 ajc * database_cleanup.sh: look for /usr/local/ctdlsupport/bin/db_dump and prepend that directory to the PATH if found. @@ -6451,4 +6454,3 @@ Sat Jul 11 00:20:48 EDT 1998 Nathan Bryant Fri Jul 10 1998 Art Cancro * Initial CVS import - diff --git a/citadel/citserver.c b/citadel/citserver.c index c2297a469..ee4b5ffcf 100644 --- a/citadel/citserver.c +++ b/citadel/citserver.c @@ -68,6 +68,7 @@ char *unique_session_numbers; int ScheduledShutdown = 0; int do_defrag = 0; time_t server_startup_time; +char pid_file_name[PATH_MAX]; /* * Various things that need to be initialized at startup @@ -77,10 +78,19 @@ void master_startup(void) { unsigned int seed; FILE *urandom; struct ctdlroom qrbuf; + FILE *pidfile_fp; lprintf(CTDL_DEBUG, "master_startup() started\n"); time(&server_startup_time); + /* pid file. If we go FSSTND this should end up in 'localstatedir' */ + snprintf(pid_file_name, sizeof pid_file_name, "./citadel.pid"); + pidfile_fp = fopen(pid_file_name, "w"); + if (pidfile_fp != NULL) { + fprintf(pidfile_fp, "%d\n", (int)getpid()); + fclose(pidfile_fp); + } + lprintf(CTDL_INFO, "Opening databases\n"); open_databases(); @@ -153,6 +163,7 @@ void master_cleanup(int exitcode) { lprintf(CTDL_NOTICE, "citserver: Exiting with status %d\n", exitcode); fflush(stdout); fflush(stderr); + unlink(pid_file_name); exit(exitcode); } -- 2.39.2