11
11
*
12
12
*
13
13
* IDENTIFICATION
14
- * $Header: /cvsroot/pgsql/src/backend/postmaster/postmaster.c,v 1.154 2000/07/09 13:14:05 petere Exp $
14
+ * $Header: /cvsroot/pgsql/src/backend/postmaster/postmaster.c,v 1.155 2000/07/12 17:38:42 petere Exp $
15
15
*
16
16
* NOTES
17
17
*
@@ -280,11 +280,6 @@ void GetCharSetByHost(char *, int, char *);
280
280
281
281
#endif
282
282
283
- #ifdef USE_ASSERT_CHECKING
284
-
285
- int assert_enabled = 1 ;
286
-
287
- #endif
288
283
289
284
static void
290
285
checkDataDir (const char * DataDir )
@@ -387,13 +382,46 @@ PostmasterMain(int argc, char *argv[])
387
382
* will occur.
388
383
*/
389
384
opterr = 1 ;
390
- while ((opt = getopt (argc , argv , "A:a:B:b:D:d:Film:MN:no:p:Ss-:" )) != EOF )
385
+ while ((opt = getopt (argc , argv , "A:a:B:b:D:d:Film:MN:no:p:Ss-:? " )) != EOF )
391
386
{
392
- if (opt == 'D' )
387
+ switch (opt )
393
388
{
394
- if (DataDir )
395
- free (DataDir );
396
- DataDir = strdup (optarg );
389
+ case 'D' :
390
+ if (DataDir )
391
+ free (DataDir );
392
+ DataDir = strdup (optarg );
393
+ break ;
394
+
395
+ case '-' :
396
+ {
397
+ char * name , * value ;
398
+
399
+ ParseLongOption (optarg , & name , & value );
400
+ if (strcmp (name , "help" )== 0 )
401
+ {
402
+ usage (progname );
403
+ exit (0 );
404
+ }
405
+ else if (strcmp (name , "version" )== 0 )
406
+ {
407
+ puts ("postmaster (PostgreSQL) " PG_VERSION );
408
+ exit (0 );
409
+ }
410
+ break ;
411
+ }
412
+
413
+ case '?' :
414
+ if (strcmp (argv [optind - 1 ], "-?" ) == 0 )
415
+ {
416
+ usage (progname );
417
+ exit (0 );
418
+ }
419
+ else
420
+ {
421
+ fprintf (stderr , "Try -? for help.\n" );
422
+ exit (1 );
423
+ }
424
+ break ;
397
425
}
398
426
}
399
427
@@ -403,21 +431,15 @@ PostmasterMain(int argc, char *argv[])
403
431
ProcessConfigFile (PGC_POSTMASTER );
404
432
405
433
IgnoreSystemIndexes (false);
406
- while ((opt = getopt (argc , argv , "A:a:B:b:D:d:Film:MN:no:p:Ss-:" )) != EOF )
434
+ while ((opt = getopt (argc , argv , "A:a:B:b:D:d:Film:MN:no:p:Ss-:? " )) != EOF )
407
435
{
408
436
switch (opt )
409
437
{
410
438
case 'A' :
411
439
#ifndef USE_ASSERT_CHECKING
412
- fprintf (stderr , "Assert checking is not enabled \n" );
440
+ fprintf (stderr , "Assert checking is not compiled in \n" );
413
441
#else
414
-
415
- /*
416
- * Pass this option also to each backend.
417
- */
418
442
assert_enabled = atoi (optarg );
419
- strcat (ExtraOptions , " -A " );
420
- strcat (ExtraOptions , optarg );
421
443
#endif
422
444
break ;
423
445
case 'a' :
@@ -525,13 +547,23 @@ PostmasterMain(int argc, char *argv[])
525
547
free (value );
526
548
break ;
527
549
}
550
+
528
551
default :
529
- /* usage() never returns */
530
- usage ( progname );
531
- break ;
552
+ /* shouldn't get here */
553
+ fprintf ( stderr , "Try -? for help.\n" );
554
+ exit ( 1 ) ;
532
555
}
533
556
}
534
557
558
+ /*
559
+ * Non-option switch arguments don't exist.
560
+ */
561
+ if (optind < argc )
562
+ {
563
+ fprintf (stderr , "%s: invalid argument -- %s\n" , progname , argv [optind ]);
564
+ exit (1 );
565
+ }
566
+
535
567
/*
536
568
* Check for invalid combinations of switches
537
569
*/
@@ -543,7 +575,7 @@ PostmasterMain(int argc, char *argv[])
543
575
* for lack of buffers. The specific choices here are somewhat
544
576
* arbitrary.
545
577
*/
546
- fprintf (stderr , "%s: -B must be at least twice -N and at least 16.\n" ,
578
+ fprintf (stderr , "%s: The number of buffers (-B) must be at least twice the number of allowed connections (-N) and at least 16.\n" ,
547
579
progname );
548
580
exit (1 );
549
581
}
@@ -717,30 +749,43 @@ pmdaemonize(int argc, char *argv[])
717
749
on_proc_exit (UnlinkPidFile , NULL );
718
750
}
719
751
752
+
753
+
754
+ /*
755
+ * Print out help message
756
+ */
720
757
static void
721
758
usage (const char * progname )
722
759
{
723
- fprintf (stderr , "usage: %s [options]\n" , progname );
760
+ printf ("%s is the PostgreSQL server.\n\n" , progname );
761
+ printf ("Usage:\n %s [options]\n\n" , progname );
762
+ printf ("Options:\n" );
724
763
#ifdef USE_ASSERT_CHECKING
725
- fprintf ( stderr , "\t -A [ 1|0]\tenable /disable runtime assert checking\n" );
764
+ printf ( " -A 1|0 enable /disable runtime assert checking\n" );
726
765
#endif
727
- fprintf (stderr , "\t-B nbufs\tset number of shared buffers\n" );
728
- fprintf (stderr , "\t-D datadir\tset data directory\n" );
729
- fprintf (stderr , "\t-S \t\tsilent mode (disassociate from tty)\n" );
730
- fprintf (stderr , "\t-a system\tuse this authentication system\n" );
731
- fprintf (stderr , "\t-b backend\tuse a specific backend server executable\n" );
732
- fprintf (stderr , "\t-d [1-5]\tset debugging level\n" );
733
- fprintf (stderr , "\t-i \t\tlisten on TCP/IP sockets as well as Unix domain socket\n" );
766
+ printf (" -B <buffers> number of shared buffers\n" );
767
+ printf (" -d 1-5 debugging level\n" );
768
+ printf (" -D <directory> database directory\n" );
769
+ printf (" -F turn fsync off\n" );
770
+ printf (" -i listen on TCP/IP sockets\n" );
734
771
#ifdef USE_SSL
735
- fprintf ( stderr , " \t -l \t\tfor TCP/IP sockets, listen only on SSL connections\n" );
772
+ printf ( " -l listen only on SSL connections (EXPERIMENTAL) \n" );
736
773
#endif
737
- fprintf ( stderr , "\t -N nprocs\tset max number of backends (1..%d, default %d)\n" ,
774
+ printf ( " -N <number> maximum number of allowed connections (1..%d, default %d)\n" ,
738
775
MAXBACKENDS , DEF_MAXBACKENDS );
739
- fprintf (stderr , "\t-n \t\tdon't reinitialize shared memory after abnormal exit\n" );
740
- fprintf (stderr , "\t-o option\tpass 'option' to each backend servers\n" );
741
- fprintf (stderr , "\t-p port\tspecify port for postmaster to listen on\n" );
742
- fprintf (stderr , "\t-s \t\tsend SIGSTOP to all backend servers if one dies\n" );
743
- exit (1 );
776
+ printf (" -o <option> pass `option' to each backend server\n" );
777
+ printf (" -p <port> port number to listen on\n" );
778
+ printf (" -S silent mode (dissociate from tty)\n" );
779
+
780
+ printf ("\nDeveloper options:\n" );
781
+ printf (" -n don't reinitialize shared memory after abnormal exit\n" );
782
+ printf (" -s send SIGSTOP to all backend servers if one dies\n" );
783
+
784
+ printf ("\nPlease read the documentation for the complete list of runtime\n"
785
+ "configuration settings and how to set them on the command line or in\n"
786
+ "the configuration file.\n\n" );
787
+
788
+ printf ("Report bugs to <pgsql-bugs@postgresql.org>.\n" );
744
789
}
745
790
746
791
static int
@@ -1231,7 +1276,7 @@ reset_shared(int port)
1231
1276
1232
1277
1233
1278
/*
1234
- * set flag is SIGHUP was detected so config file can be reread in
1279
+ * Set flag if SIGHUP was detected so config file can be reread in
1235
1280
* main loop
1236
1281
*/
1237
1282
static void
0 commit comments