diff options
Diffstat (limited to 'src/backend/main/main.c')
-rw-r--r-- | src/backend/main/main.c | 17 |
1 files changed, 8 insertions, 9 deletions
diff --git a/src/backend/main/main.c b/src/backend/main/main.c index c7d48e95ad6..33c5a0a4e64 100644 --- a/src/backend/main/main.c +++ b/src/backend/main/main.c @@ -173,7 +173,7 @@ main(int argc, char *argv[]) #ifdef EXEC_BACKEND if (argc > 1 && strncmp(argv[1], "--fork", 6) == 0) - exit(SubPostmasterMain(argc, argv)); + SubPostmasterMain(argc, argv); /* does not return */ #endif #ifdef WIN32 @@ -189,14 +189,13 @@ main(int argc, char *argv[]) if (argc > 1 && strcmp(argv[1], "--boot") == 0) AuxiliaryProcessMain(argc, argv); /* does not return */ - - if (argc > 1 && strcmp(argv[1], "--describe-config") == 0) - exit(GucInfoMain()); - - if (argc > 1 && strcmp(argv[1], "--single") == 0) - exit(PostgresMain(argc, argv, get_current_username(progname))); - - exit(PostmasterMain(argc, argv)); + else if (argc > 1 && strcmp(argv[1], "--describe-config") == 0) + GucInfoMain(); /* does not return */ + else if (argc > 1 && strcmp(argv[1], "--single") == 0) + PostgresMain(argc, argv, get_current_username(progname)); /* does not return */ + else + PostmasterMain(argc, argv); /* does not return */ + abort(); /* should not get here */ } |