|
|
| version 1.11, 2025/04/01 23:21:45 | version 1.14, 2025/04/02 04:50:49 |
|---|---|
| Line 24 | Line 24 |
| * along with FreeM. If not, see <https://www.gnu.org/licenses/>. | * along with FreeM. If not, see <https://www.gnu.org/licenses/>. |
| * | * |
| * $Log$ | * $Log$ |
| * Revision 1.14 2025/04/02 04:50:49 snw | |
| * Allow vendor routines to be upgraded | |
| * | |
| * Revision 1.13 2025/04/02 03:26:22 snw | |
| * Don't corrupt the terminal if FreeM runs before fmadm configure has been run | |
| * | |
| * 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 | * Revision 1.11 2025/04/01 23:21:45 snw |
| * fmadm commands for stopping, starting, and restarting environments now functional | * fmadm commands for stopping, starting, and restarting environments now functional |
| * | * |
| Line 109 int main (int argc, char **argv, char ** | Line 118 int main (int argc, char **argv, char ** |
| int option_index = 0; | int option_index = 0; |
| char fm_initialized = FALSE; | |
| char dx_mcode[512]; | char dx_mcode[512]; |
| char startup_routine[256]; | char startup_routine[256]; |
| short routine_mode; | short routine_mode; |
| Line 639 int main (int argc, char **argv, char ** | Line 650 int main (int argc, char **argv, char ** |
| strncpy (nsnbuf, nsname, 255); | strncpy (nsnbuf, nsname, 255); |
| if (init (nsnbuf) == FALSE) { | if (init (nsnbuf) == FALSE) { |
| set_io (UNIX); | if (fm_initialized) set_io (UNIX); |
| fprintf (stderr, "\nError initializing FreeM.\n"); | fprintf (stderr, "\nError initializing FreeM.\n"); |
| exit (1); | exit (1); |
| } | } |
| else { | |
| fm_initialized = TRUE; | |
| } | |
| direct_mode = FALSE; | direct_mode = FALSE; |
| Line 671 int main (int argc, char **argv, char ** | Line 685 int main (int argc, char **argv, char ** |
| /* isolate the path from the routine file */ | /* isolate the path from the routine file */ |
| strncpy (cli_rtn_path, argv[optind], strrchr (argv[optind], '/') - argv[optind]); | strncpy (cli_rtn_path, argv[optind], strrchr (argv[optind], '/') - argv[optind]); |
| /* set_io (UNIX); | |
| printf ("cli_rtn_name = '%s' cli_rtn_path = '%s'\n", cli_rtn_name, cli_rtn_path); | |
| set_io (MUMPS); | |
| */ | |
| } | } |
| /* do we have a file extension? */ | /* do we have a file extension? */ |
| Line 711 int main (int argc, char **argv, char ** | Line 721 int main (int argc, char **argv, char ** |
| } | } |
| if (!file_exists (config_file)) { | if (!file_exists (config_file)) { |
| set_io (UNIX); | if (fm_initialized == TRUE) set_io (UNIX); |
| fprintf (stderr, "\nFreeM has not been configured. Please run 'fmadm configure'.\n\n\n\n"); | fprintf (stderr, "\nFreeM has not been configured. Please run 'fmadm configure'.\n\n\n\n"); |
| exit (2); | exit (2); |
| Line 724 int main (int argc, char **argv, char ** | Line 735 int main (int argc, char **argv, char ** |
| if (!skip_init) { | if (!skip_init) { |
| /* initialize FreeM environment */ | /* initialize FreeM environment */ |
| strncpy (nsnbuf, nsname, 255); | strncpy (nsnbuf, nsname, 255); |
| if (init (nsnbuf) == FALSE) { | if (init (nsnbuf) == FALSE) { |
| set_io (UNIX); | set_io (UNIX); |
| fprintf (stderr, "\nError initializing FreeM.\n"); | fprintf (stderr, "\nError initializing FreeM.\n"); |
| exit (1); | exit (1); |
| } | } |
| else { | |
| fm_initialized = TRUE; | |
| } | |
| } | } |
| if (first_process == TRUE) { | if (first_process == TRUE) { |
| Line 940 void freem_usage(void) | Line 952 void freem_usage(void) |
| fprintf (stdout, "\t-x <MCODE>\n\t\texecute M code <MCODE> on startup\n\n"); | fprintf (stdout, "\t-x <MCODE>\n\t\texecute M code <MCODE> 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-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-k\n\t\trun the FreeM daemon in foreground (requires --daemon)\n\n"); |
| fprintf (stdout, "\t-p <PIDFILE>\n\t\tuse <PIDFILE> to record the PID of the FreeM daemon\n\n\n"); | |
| fprintf (stdout, "\t-S <BYTES>\n\t\tsets the size of the shared memory segment where FreeM stores the job table, lock table, and IPC table.\n"); | fprintf (stdout, "\t-S <BYTES>\n\t\tsets the size of the shared memory segment where FreeM stores the job table, lock table, and IPC table.\n"); |
| #endif | #endif |
| fprintf (stdout, "\t\t - Each concurrent job takes %d bytes (1 page) of shared memory\n", PG_SIZE); | fprintf (stdout, "\t\t - Each concurrent job takes %d bytes (1 page) of shared memory\n", PG_SIZE); |