modified switch.c to not create PID file until all modules are loaded

this help init scripts to check when everything is really loaded.
Also return 1 when loading modules fails, do not return 255 which can
be confused with a segmentation fault or some other more violent code
This commit is contained in:
Moises Silva 2011-05-30 18:49:15 -04:00
parent 950e936111
commit cbb82ad640
1 changed files with 5 additions and 5 deletions

View File

@ -894,6 +894,11 @@ int main(int argc, char *argv[])
switch_dir_make_recursive(SWITCH_GLOBAL_dirs.run_dir, SWITCH_DEFAULT_DIR_PERMS, pool); switch_dir_make_recursive(SWITCH_GLOBAL_dirs.run_dir, SWITCH_DEFAULT_DIR_PERMS, pool);
if (switch_core_init_and_modload(flags, nc ? SWITCH_FALSE : SWITCH_TRUE, &err) != SWITCH_STATUS_SUCCESS) {
fprintf(stderr, "Failed to initialize modules: %s\n", err);
return 1;
}
if (switch_file_open(&fd, pid_path, SWITCH_FOPEN_READ, SWITCH_FPROT_UREAD | SWITCH_FPROT_UWRITE, pool) == SWITCH_STATUS_SUCCESS) { if (switch_file_open(&fd, pid_path, SWITCH_FOPEN_READ, SWITCH_FPROT_UREAD | SWITCH_FPROT_UWRITE, pool) == SWITCH_STATUS_SUCCESS) {
old_pid_len = sizeof(old_pid_buffer); old_pid_len = sizeof(old_pid_buffer);
@ -920,11 +925,6 @@ int main(int argc, char *argv[])
switch_file_write(fd, pid_buffer, &pid_len); switch_file_write(fd, pid_buffer, &pid_len);
if (switch_core_init_and_modload(flags, nc ? SWITCH_FALSE : SWITCH_TRUE, &err) != SWITCH_STATUS_SUCCESS) {
fprintf(stderr, "Cannot Initialize [%s]\n", err);
return 255;
}
#ifndef WIN32 #ifndef WIN32
if (do_wait) { if (do_wait) {
kill(getppid(), SIGUSR2); kill(getppid(), SIGUSR2);