--- freem/src/mumps.c	2025/04/01 20:11:46	1.10
+++ freem/src/mumps.c	2025/04/02 02:16:27	1.12
@@ -1,5 +1,5 @@
 /*
- *   $Id: mumps.c,v 1.10 2025/04/01 20:11:46 snw Exp $
+ *   $Id: mumps.c,v 1.12 2025/04/02 02:16:27 snw Exp $
  *    main module of freem
  *
  *  
@@ -24,6 +24,12 @@
  *   along with FreeM.  If not, see .
  *
  *   $Log: mumps.c,v $
+ *   Revision 1.12  2025/04/02 02:16:27  snw
+ *   Add fmadm status environment command and move journals to a better location
+ *
+ *   Revision 1.11  2025/04/01 23:21:45  snw
+ *   fmadm commands for stopping, starting, and restarting environments now functional
+ *
  *   Revision 1.10  2025/04/01 20:11:46  snw
  *   Further work on fmadm
  *
@@ -562,11 +568,6 @@ int main (int argc, char **argv, char **
                     m_log (1, "failure switching UIDs");
                     exit (1);
                 }
-                if (chdir (d_user->pw_dir) == -1) {
-                    fprintf (stderr, "freem:  chdir failure\n");
-                    m_log (1, "failure in chdir");
-                    exit (1);
-                }            
             }
 
         }
@@ -585,11 +586,11 @@ int main (int argc, char **argv, char **
             char pidfile_buf[256];
             int errsav;
 
+            pid_file_path = (char *) malloc (PATH_MAX * sizeof (char));
+            NULLPTRCHK(pid_file_path,"main");
+            
             snprintf (pid_file_path, PATH_MAX - 1, "%s/freem/run/%s.pid", LOCALSTATEDIR, shm_env);
 
-            printf (pid_file_path);
-            m_log (1, pid_file_path);
-
             pid_fd = open (pid_file_path, O_RDWR | O_CREAT, 0640);
             errsav = errno;
             
@@ -609,7 +610,6 @@ int main (int argc, char **argv, char **
             sprintf (pidfile_buf, "%ld\n", (long) getpid ());
             write (pid_fd, pidfile_buf, strlen (pidfile_buf));
 
-            close (pid_fd);
         }
        
         
@@ -816,6 +816,7 @@ int main (int argc, char **argv, char **
 
                 fprintf (stderr, "freem:  terminating\r\n");
                 cleanup ();
+                
                 exit (0);
                 
             }
@@ -942,7 +943,6 @@ void freem_usage(void)
     fprintf (stdout, "\t-x \n\t\texecute M code  on startup\n\n");
     fprintf (stdout, "\t-d\n\t\trun the FreeM daemon (one and only one FreeM daemon must always be running)\n\n");
     fprintf (stdout, "\t-k\n\t\trun the FreeM daemon in foreground (requires --daemon)\n\n");
-    fprintf (stdout, "\t-p \n\t\tuse  to record the PID of the FreeM daemon\n\n\n");
     fprintf (stdout, "\t-S \n\t\tsets the size of the shared memory segment where FreeM stores the job table, lock table, and IPC table.\n");
 #endif    
     fprintf (stdout, "\t\t  - Each concurrent job takes %d bytes (1 page) of shared memory\n", PG_SIZE);