--- freem/src/mumps.c 2025/04/16 17:36:12 1.26 +++ freem/src/mumps.c 2025/05/14 12:22:04 1.28 @@ -1,5 +1,5 @@ /* - * $Id: mumps.c,v 1.26 2025/04/16 17:36:12 snw Exp $ + * $Id: mumps.c,v 1.28 2025/05/14 12:22:04 snw Exp $ * main module of freem * * @@ -24,6 +24,12 @@ * along with FreeM. If not, see . * * $Log: mumps.c,v $ + * Revision 1.28 2025/05/14 12:22:04 snw + * Further work on shared memory + * + * Revision 1.27 2025/04/17 00:34:04 snw + * More logging improvements + * * Revision 1.26 2025/04/16 17:36:12 snw * Add FreeBSD shm cleanup script * @@ -523,12 +529,14 @@ int main (int argc, char **argv, char ** } #endif + if (run_daemon == TRUE) { if (geteuid () != 0 && nofork == FALSE) { logprintf (FM_LOG_FATAL, "freem: forking daemon must be run as root"); } } + if ((nofork == TRUE) && (run_daemon == FALSE)) { freem_usage (); exit (1); @@ -793,7 +801,7 @@ int main (int argc, char **argv, char ** logprintf (FM_LOG_WARNING, "environment: entering maintenance mode"); - for (slot = shm_config->hdr->jobtab_head; slot != NULL; slot = slot->next) { + for (slot = SOA(shm_config->hdr->jobtab_head); slot != NULL; slot = SOA(slot->next)) { if ((slot->pid != pid) && ((slot->flags & JFLG_FMADM) != JFLG_FMADM)) { kill (slot->pid, SIGINT); @@ -847,13 +855,14 @@ int main (int argc, char **argv, char ** exit (0); } - + job_gc_mark (); job_set_status (pid, JSTAT_IDLE); sleep (1); job_set_status (pid, JSTAT_HOUSEKEEPING); job_gc_sweep (); + sleep (1); }