--- freeswitch_snapshot/src/switch.c 2006-12-23 23:45:33.000000000 +0100 +++ fs_urtho/src/switch.c 2007-01-18 23:04:13.000000000 +0100 @@ -194,7 +194,8 @@ { char pid_path[256] = ""; // full path to the pid file const char *err = NULL; // error value for return from freeswitch initialization - int bg = 0; // TRUE if we are running in background mode + int nf = 0; // TRUE if we are running in nofork mode + int nc = 0; // TRUE if we are running in noconsole mode int vg = 0; // TRUE if we are running in vg mode FILE *f; // file handle to the pid file pid_t pid = 0; // @@ -264,7 +265,11 @@ } if (argv[x] && !strcmp(argv[x], "-nc")) { - bg++; + nc++; + } + + if (argv[x] && !strcmp(argv[x], "-nf")) { + nf++; } if (argv[x] && !strcmp(argv[x], "-vg")) { @@ -276,7 +281,7 @@ return freeswitch_kill_background(); } - if (bg) { + if (nc) { signal(SIGHUP, handle_SIGHUP); signal(SIGTERM, handle_SIGHUP); @@ -284,14 +289,14 @@ #ifdef WIN32 FreeConsole(); #else - if ((pid = fork())) { + if (!nf && (pid = fork())) { fprintf(stderr, "%d Backgrounding.\n", (int)pid); exit(0); } #endif } - if (switch_core_init_and_modload(bg ? lfile : NULL, &err) != SWITCH_STATUS_SUCCESS) { + if (switch_core_init_and_modload(nc ? lfile : NULL, &err) != SWITCH_STATUS_SUCCESS) { fprintf(stderr, "Cannot Initilize [%s]\n", err); return 255; } @@ -305,7 +310,7 @@ fprintf(f, "%d", pid = getpid()); fclose(f); - switch_core_runtime_loop(bg); + switch_core_runtime_loop(nc); return switch_core_destroy(vg); }