diff --git a/src/switch.c b/src/switch.c index 20401a1713..2bca5e8b3d 100644 --- a/src/switch.c +++ b/src/switch.c @@ -653,8 +653,18 @@ int main(int argc, char *argv[]) } if (destroy_status == SWITCH_STATUS_RESTART) { - switch_sleep(1000000); + char buf[1024] = ""; + int i = 0; + + switch_sleep(1000000); ret = (int)execv(argv[0], argv); + fprintf(stderr, "Restart Failed [%s] resorting to plan b\n", strerror(errno)); + + for(i = 0; i < argc; i++) { + switch_snprintf(buf + strlen(buf), sizeof(buf) - strlen(buf), "%s ", argv[i]); + } + + ret = system(buf); } return ret;