--- freem/src/mumps.c 2025/04/01 20:11:46 1.10 +++ freem/src/mumps.c 2025/04/01 23:21:45 1.11 @@ -1,5 +1,5 @@ /* - * $Id: mumps.c,v 1.10 2025/04/01 20:11:46 snw Exp $ + * $Id: mumps.c,v 1.11 2025/04/01 23:21:45 snw Exp $ * main module of freem * * @@ -24,6 +24,9 @@ * along with FreeM. If not, see . * * $Log: mumps.c,v $ + * 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 +565,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 +583,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 +607,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 +813,7 @@ int main (int argc, char **argv, char ** fprintf (stderr, "freem: terminating\r\n"); cleanup (); + exit (0); }