Add fsctl command to summon reincarnation

If you start freeswitch with -reincarnate or -reincarnate-reexec, FS
will restart automatically in the event of an unexpected exit.

Currently, you can cause FS to immediately call exit(0) with `fsctl
shutdown now`, or you can have it call abort() with `fsctl crash`.
Which are both nice, but if you have reincarnation engaged, you really
might want FS to call exit([non-zero]) so the great supervisor
immediately breathes life back into your system.

This is now available via `fsctl shutdown reincarnate now`.
This commit is contained in:
Travis Cross 2014-06-10 22:21:38 +00:00
parent d94e393480
commit 03202e3017
3 changed files with 10 additions and 0 deletions

View File

@ -1994,6 +1994,7 @@ typedef enum {
SCSC_DEBUG_LEVEL,
SCSC_FLUSH_DB_HANDLES,
SCSC_SHUTDOWN_NOW,
SCSC_REINCARNATE_NOW,
SCSC_CALIBRATE_CLOCK,
SCSC_SAVE_HISTORY,
SCSC_CRASH,

View File

@ -2268,6 +2268,10 @@ SWITCH_STANDARD_API(ctl_function)
command = SCSC_SHUTDOWN_NOW;
} else if (!strcasecmp(argv[x], "asap")) {
command = SCSC_SHUTDOWN_ASAP;
} else if (!strcasecmp(argv[x], "reincarnate")
&& (x+1 < argc) && argv[x+1] && !strcasecmp(argv[x+1], "now")) {
++x;
command = SCSC_REINCARNATE_NOW;
} else if (!strcasecmp(argv[x], "restart")) {
arg = 1;
}
@ -6746,6 +6750,7 @@ SWITCH_MODULE_LOAD_FUNCTION(mod_commands_load)
switch_console_set_complete("add fsctl shutdown cancel");
switch_console_set_complete("add fsctl shutdown elegant");
switch_console_set_complete("add fsctl shutdown elegant restart");
switch_console_set_complete("add fsctl shutdown reincarnate now");
switch_console_set_complete("add fsctl shutdown restart");
switch_console_set_complete("add fsctl shutdown restart asap");
switch_console_set_complete("add fsctl shutdown restart elegant");

View File

@ -2421,6 +2421,10 @@ SWITCH_DECLARE(int32_t) switch_core_session_ctl(switch_session_ctl_t cmd, void *
switch_console_save_history();
exit(0);
break;
case SCSC_REINCARNATE_NOW:
switch_console_save_history();
exit(SWITCH_STATUS_RESTART);
break;
case SCSC_SHUTDOWN_ELEGANT:
case SCSC_SHUTDOWN_ASAP:
{