4
4
*
5
5
* Portions Copyright (c) 1996-2003, PostgreSQL Global Development Group
6
6
*
7
- * $PostgreSQL: pgsql/src/bin/pg_ctl/pg_ctl.c,v 1.2 2004/05/31 17:57:31 momjian Exp $
7
+ * $PostgreSQL: pgsql/src/bin/pg_ctl/pg_ctl.c,v 1.3 2004/06/01 01:28:03 momjian Exp $
8
8
*
9
9
*-------------------------------------------------------------------------
10
10
*/
24
24
int optreset ;
25
25
#endif
26
26
27
+ /* PID can be negative for standalone backend */
28
+ typedef long pgpid_t ;
27
29
28
30
#define _ (x ) gettext((x))
29
31
@@ -79,8 +81,8 @@ static void do_stop(void);
79
81
static void do_restart (void );
80
82
static void do_reload (void );
81
83
static void do_status (void );
82
- static void do_kill (pid_t pid );
83
- static pid_t get_pgpid (void );
84
+ static void do_kill (pgpid_t pid );
85
+ static pgpid_t get_pgpid (void );
84
86
static char * * readfile (char * path );
85
87
static int start_postmaster (void );
86
88
static bool test_postmaster_connection (void );
@@ -126,11 +128,11 @@ xstrdup(const char *s)
126
128
127
129
128
130
129
- static pid_t
131
+ static pgpid_t
130
132
get_pgpid (void )
131
133
{
132
134
FILE * pidf ;
133
- pid_t pid ;
135
+ pgpid_t pid ;
134
136
135
137
pidf = fopen (pid_file , "r" );
136
138
if (pidf == NULL )
@@ -144,7 +146,7 @@ get_pgpid(void)
144
146
exit (1 );
145
147
}
146
148
}
147
- fscanf (pidf , "%u " , & pid );
149
+ fscanf (pidf , "%ld " , & pid );
148
150
fclose (pidf );
149
151
return pid ;
150
152
}
@@ -323,8 +325,8 @@ test_postmaster_connection(void)
323
325
static void
324
326
do_start (void )
325
327
{
326
- pid_t pid ;
327
- pid_t old_pid = 0 ;
328
+ pgpid_t pid ;
329
+ pgpid_t old_pid = 0 ;
328
330
char * optline = NULL ;
329
331
330
332
if (ctl_command != RESTART_COMMAND )
@@ -457,7 +459,7 @@ static void
457
459
do_stop (void )
458
460
{
459
461
int cnt ;
460
- pid_t pid ;
462
+ pgpid_t pid ;
461
463
462
464
pid = get_pgpid ();
463
465
@@ -472,14 +474,14 @@ do_stop(void)
472
474
pid = - pid ;
473
475
fprintf (stderr ,
474
476
_ ("%s: cannot stop postmaster; "
475
- "postgres is running (PID: %u )\n" ),
477
+ "postgres is running (PID: %ld )\n" ),
476
478
progname , pid );
477
479
exit (1 );
478
480
}
479
481
480
- if (kill (pid , sig ) != 0 )
482
+ if (kill (( pid_t ) pid , sig ) != 0 )
481
483
{
482
- fprintf (stderr , _ ("stop signal failed (PID: %u ): %s\n" ), pid ,
484
+ fprintf (stderr , _ ("stop signal failed (PID: %ld ): %s\n" ), pid ,
483
485
strerror (errno ));
484
486
exit (1 );
485
487
}
@@ -537,7 +539,7 @@ static void
537
539
do_restart (void )
538
540
{
539
541
int cnt ;
540
- pid_t pid ;
542
+ pgpid_t pid ;
541
543
542
544
pid = get_pgpid ();
543
545
@@ -553,15 +555,15 @@ do_restart(void)
553
555
pid = - pid ;
554
556
fprintf (stderr ,
555
557
_ ("%s: cannot restart postmaster; "
556
- "postgres is running (PID: %u )\n" ),
558
+ "postgres is running (PID: %ld )\n" ),
557
559
progname , pid );
558
560
fprintf (stderr , _ ("Please terminate postgres and try again.\n" ));
559
561
exit (1 );
560
562
}
561
563
562
- if (kill (pid , sig ) != 0 )
564
+ if (kill (( pid_t ) pid , sig ) != 0 )
563
565
{
564
- fprintf (stderr , _ ("stop signal failed (PID: %u ): %s\n" ), pid ,
566
+ fprintf (stderr , _ ("stop signal failed (PID: %ld ): %s\n" ), pid ,
565
567
strerror (errno ));
566
568
exit (1 );
567
569
}
@@ -609,7 +611,7 @@ do_restart(void)
609
611
static void
610
612
do_reload (void )
611
613
{
612
- pid_t pid ;
614
+ pgpid_t pid ;
613
615
614
616
pid = get_pgpid ();
615
617
if (pid == 0 ) /* no pid file */
@@ -623,15 +625,15 @@ do_reload(void)
623
625
pid = - pid ;
624
626
fprintf (stderr ,
625
627
_ ("%s: cannot reload postmaster; "
626
- "postgres is running (PID: %u )\n" ),
628
+ "postgres is running (PID: %ld )\n" ),
627
629
progname , pid );
628
630
fprintf (stderr , _ ("Please terminate postgres and try again.\n" ));
629
631
exit (1 );
630
632
}
631
633
632
- if (kill (pid , sig ) != 0 )
634
+ if (kill (( pid_t ) pid , sig ) != 0 )
633
635
{
634
- fprintf (stderr , _ ("reload signal failed (PID: %u ): %s\n" ), pid ,
636
+ fprintf (stderr , _ ("reload signal failed (PID: %ld ): %s\n" ), pid ,
635
637
strerror (errno ));
636
638
exit (1 );
637
639
}
@@ -647,7 +649,7 @@ do_reload(void)
647
649
static void
648
650
do_status (void )
649
651
{
650
- pid_t pid ;
652
+ pgpid_t pid ;
651
653
652
654
pid = get_pgpid ();
653
655
if (pid == 0 ) /* no pid file */
@@ -658,13 +660,13 @@ do_status(void)
658
660
else if (pid < 0 ) /* standalone backend */
659
661
{
660
662
pid = - pid ;
661
- fprintf (stdout , _ ("%s: a standalone backend \"postgres\" is running (PID: %u )\n" ), progname , pid );
663
+ fprintf (stdout , _ ("%s: a standalone backend \"postgres\" is running (PID: %ld )\n" ), progname , pid );
662
664
}
663
665
else /* postmaster */
664
666
{
665
667
char * * optlines ;
666
668
667
- fprintf (stdout , _ ("%s: postmaster is running (PID: %u )\n" ), progname , pid );
669
+ fprintf (stdout , _ ("%s: postmaster is running (PID: %ld )\n" ), progname , pid );
668
670
669
671
optlines = readfile (postopts_file );
670
672
if (optlines != NULL )
@@ -676,11 +678,11 @@ do_status(void)
676
678
677
679
678
680
static void
679
- do_kill (pid_t pid )
681
+ do_kill (pgpid_t pid )
680
682
{
681
- if (kill (pid , sig ) != 0 )
683
+ if (kill (( pid_t ) pid , sig ) != 0 )
682
684
{
683
- fprintf (stderr , _ ("signal %d failed (PID: %u ): %s\n" ), sig , pid ,
685
+ fprintf (stderr , _ ("signal %d failed (PID: %ld ): %s\n" ), sig , pid ,
684
686
strerror (errno ));
685
687
exit (1 );
686
688
}
@@ -813,7 +815,7 @@ main(int argc, char **argv)
813
815
814
816
int option_index ;
815
817
int c ;
816
- int killproc = 0 ;
818
+ pgpid_t killproc = 0 ;
817
819
818
820
#ifdef WIN32
819
821
setvbuf (stderr , NULL , _IONBF , 0 );
0 commit comments