Re: pgkill for windows - Mailing list pgsql-patches

From Bruce Momjian
Subject Re: pgkill for windows
Date
Msg-id 200405200334.i4K3Yb027603@candle.pha.pa.us
Whole thread Raw
In response to pgkill for windows  (Andrew Dunstan <andrew@dunslane.net>)
Responses Re: pgkill for windows  ("Andrew Dunstan" <andrew@dunslane.net>)
List pgsql-patches
I was hoping to avoid platform-specific binaries.  Once pg_ctl is done
in C, it can start/stop the postmaster, but not individual backends.
Can we add a flag to pg_ctl so it can send arbitrary signals to
processed on Win32?  That would be best, I think.

---------------------------------------------------------------------------

Andrew Dunstan wrote:
>
>
> Attached are 2 files needed to create a pgkill facility for Windows, and
> a complementary patch for src/bin/Makefile
>
> It is adapted from the facility on the Win32 page, but uses the builtin
> signal definitions rather than using its own.
>
> This facility is needed for shutting down postgres cleanly as part of
> 'make check', as we don't really use signals in Windows, we only emulate
> them using our own scheme, so any native kill program doesn't have the
> desired effect.
>
> cheers
>
> andrew

> #-------------------------------------------------------------------------
> #
> # Makefile for src/bin/pgkill
> #
> # Portions Copyright (c) 1996-2003, PostgreSQL Global Development Group
> # Portions Copyright (c) 1994, Regents of the University of California
> #
> # $PostgreSQL: pgsql-server/src/bin/pgkill/Makefile,v 1.36 2004/04/26 17:40:48 momjian Exp $
> #
> #-------------------------------------------------------------------------
>
> subdir = src/bin/pgkill
> top_builddir = ../../..
> include $(top_builddir)/src/Makefile.global
>
> override CPPFLAGS := -DPGBINDIR=\"$(bindir)\" -DPGDATADIR=\"$(datadir)\" -I$(libpq_srcdir) $(CPPFLAGS)
>
> OBJS=    pgkill.o
>
> all: pgkill
>
> pgkill: $(OBJS)
>     $(CC) $(CFLAGS) $(OBJS) $(LDFLAGS) -o $@$(X)
>
> install: all installdirs
>     $(INSTALL_PROGRAM) pgkill$(X) $(DESTDIR)$(bindir)/pgkill$(X)
>
> installdirs:
>     $(mkinstalldirs) $(DESTDIR)$(bindir)
>
> uninstall:
>     rm -f $(DESTDIR)$(bindir)/pgkill$(X)
>
> clean distclean maintainer-clean:
>     rm -f pgkill$(X) $(OBJS)
>
>
> # ensure that changes in bindir etc. propagate into object file
> pgkill.o: pgkill.c $(top_builddir)/src/Makefile.global

> Index: src/bin/Makefile
> ===================================================================
> RCS file: /projects/cvsroot/pgsql-server/src/bin/Makefile,v
> retrieving revision 1.43
> diff -c -r1.43 Makefile
> *** src/bin/Makefile    20 Apr 2004 00:40:06 -0000    1.43
> --- src/bin/Makefile    10 May 2004 16:17:52 -0000
> ***************
> *** 15,20 ****
> --- 15,24 ----
>
>   DIRS := initdb initlocation ipcclean pg_ctl pg_dump \
>       psql scripts pg_config pg_controldata pg_resetxlog
> + ifeq ($(host_os), mingw32)
> + DIRS := $(DIRS) pgkill
> + endif
> +
>
>   all install installdirs uninstall depend distprep:
>       @for dir in $(DIRS); do $(MAKE) -C $$dir $@ || exit; done


>
> ---------------------------(end of broadcast)---------------------------
> TIP 7: don't forget to increase your free space map settings

--
  Bruce Momjian                        |  http://candle.pha.pa.us
  pgman@candle.pha.pa.us               |  (610) 359-1001
  +  If your life is a hard drive,     |  13 Roberts Road
  +  Christ can be your backup.        |  Newtown Square, Pennsylvania 19073

pgsql-patches by date:

Previous
From: Bruce Momjian
Date:
Subject: Re: Add error-checking to timestamp_recv
Next
From: Bruce Momjian
Date:
Subject: Re: [HACKERS] Configuration patch