cygrunsrv patch for system shutdown handling

From: Fred Yankowski <fcy(at)ontosys(dot)com>
To: cygwin-apps(at)cygwin(dot)com
Cc: pgsql-cygwin(at)postgresql(dot)org
Subject: cygrunsrv patch for system shutdown handling
Date: 2001-06-15 19:47:56
Message-ID: 3B2A666C.932B5FB7@ontosys.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-cygwin

Attached is a patch to cygrunsrv that adds an optional feature where
cygrunsrv accepts SERVICE_CONTROL_SHUTDOWN notifications from the
Service Control Manager and explicitly terminates the managed
application process on receipt of such a notification. This gives the
application a chance to shutdown cleanly, just as it does during a
manual stop ("net stop").

This feature is useful with the Cygwin port of PostgreSQL. Without this
feature it seems that the abrupt termination of the postmaster process
during system shutdown leaves the PostgreSQL data in a state where
postmaster cannot start up without manual intervention (the
postmaster.pid file, in particular). Note that postmaster/postgres must
also ignore SIGHUP signals for this to work -- a separate patch.

The bulk of the patch is the usual stuff to enable a new command line
option and manage the registry value. The interesting part of the code
is merely the new set_service_controls_accepted() function that enables
the service to accept the shutdown control, and the change to
service_handler() that treats the SERVICE_CONTROL_SHUTDOWN notification
exactly like SERVICE_CONTROL_STOP. More elaborate handling of the
shutdown case is possible, such as sending STOP_PENDING messages until
the managed process actually terminates, but in practice this simple
scheme works just fine (for PostgreSQL at least).

--
Fred Yankowski fred(at)OntoSys(dot)com tel: +1.630.879.1312
Principal Consultant www.OntoSys.com fax: +1.630.879.1370
OntoSys, Inc 38W242 Deerpath Rd, Batavia, IL 60510, USA

Attachment Content-Type Size
cygrunsrv.diff text/plain 7.5 KB
cygrunsrv.changelog text/plain 1.3 KB

Browse pgsql-cygwin by date

  From Date Subject
Next Message Dmitry Yurtaev 2001-06-16 16:55:15 Re: Service reboot leaves postmaster.pid
Previous Message Fred Yankowski 2001-06-15 16:53:41 Re: Service reboot leaves postmaster.pid