From abe1d7dc80efab7da7996536e829d1f54bd59f7e Mon Sep 17 00:00:00 2001 From: Moe Jette <jette1@llnl.gov> Date: Thu, 30 Mar 2006 21:59:19 +0000 Subject: [PATCH] Tweak logic from merge. --- src/plugins/jobacct/linux/jobacct_linux.c | 23 +++++++++++++---------- 1 file changed, 13 insertions(+), 10 deletions(-) diff --git a/src/plugins/jobacct/linux/jobacct_linux.c b/src/plugins/jobacct/linux/jobacct_linux.c index 14848a33f93..9c5d512c2b7 100644 --- a/src/plugins/jobacct/linux/jobacct_linux.c +++ b/src/plugins/jobacct/linux/jobacct_linux.c @@ -165,7 +165,7 @@ static char *rev_stg = "$Revision$"; /* File used for logging */ static char * log_file = NULL; static pthread_mutex_t logfile_lock = PTHREAD_MUTEX_INITIALIZER; -static FILE * LOGFILE; +static FILE ** LOGFILE; static int LOGFILE_FD; @@ -383,23 +383,24 @@ int slurmctld_jobacct_init(char *job_acct_loc, char *job_acct_parameters) debug2("slurmctld_jobacct_init() called"); info("jobacct LINUX plugin loaded (%s)", rev_stg); + _get_slurmctld_syms(); slurm_mutex_lock( &logfile_lock ); - if (LOGFILE) - fclose(LOGFILE); + if (*LOGFILE) + fclose(*LOGFILE); log_file=job_acct_loc; if (*log_file != '/') fatal("JobAcctLoc must specify an absolute pathname"); if (stat(log_file, &statbuf)==0) /* preserve current file mode */ prot = statbuf.st_mode; - LOGFILE = fopen(log_file, "a"); - if (LOGFILE == NULL) { + *LOGFILE = fopen(log_file, "a"); + if (*LOGFILE == NULL) { fatal("open %s: %m", log_file); rc = SLURM_ERROR; } else chmod(log_file, prot); - if (setvbuf(LOGFILE, NULL, _IOLBF, 0)) + if (setvbuf(*LOGFILE, NULL, _IOLBF, 0)) fatal("setvbuf() failed"); - LOGFILE_FD = fileno(LOGFILE); + LOGFILE_FD = fileno(*LOGFILE); slurm_mutex_unlock( &logfile_lock ); _get_slurmctld_syms(); return rc; @@ -493,9 +494,11 @@ static void _get_slurmctld_syms(void) if ((slurmctld_handle=dlopen("", RTLD_LAZY)) == NULL) error("dlopen failed in _get_slurmctld_syms"); - if ((find_job_record_in_slurmctld= - dlsym(slurmctld_handle, "find_job_record"))==NULL) + if ((find_job_record_in_slurmctld = + dlsym(slurmctld_handle, "find_job_record"))==NULL) error("find_job_record not found in _get_slurmctld_syms"); + if ((LOGFILE = dlsym(slurmctld_handle, "JOBACCT_LOGFILE"))==NULL) + error("JOBACCT_LOGFILE not found in _get_slurmctld_syms"); dlclose(slurmctld_handle); } @@ -518,7 +521,7 @@ static int _print_record(struct job_record *job_ptr, char *data) debug2("jobacct:_print_record, job=%u, rec starts \"%20s", job_ptr->job_id, data); slurm_mutex_lock( &logfile_lock ); - if (fprintf(LOGFILE, + if (fprintf(*LOGFILE, "%u %s %04d%02d%02d%02d%02d%02d %u %d.%d - %s\n", job_ptr->job_id, job_ptr->partition, 1900+(ts->tm_year), 1+(ts->tm_mon), ts->tm_mday, -- GitLab