On Mon, 20 Mar 2017 11:04:35 +0100, Francisco Olarte <folarte@xxxxxxxxxxxxxx> wrote: >Manoj: > >On Mon, Mar 20, 2017 at 10:55 AM, Manojkumar S ><manojkumar.krishnamurthy@xxxxxxxxxxxx> wrote: >> I started Postgres from command line using pg_ctl.exe and restarted my >> windows machine. Whenever I start postgres again after machine restart, >> postgres goes to auto recovery mode. What is the reason for this behavior? > >Unclean shutdown (of postgres) -> recovery on start. > >> Is there a way to overcome this? . The same behavior is being reproduced >> every time with any version of postgres and even if I start postgres with >> postgres.exe. >> PS: This behavior does not occur if I start postgres as a windows service > >Then start it as a service. My guess is when started as a service it >manages to get informed of (system) shutdowns and does a clean >(postgres) shutdown, but when started as a normal program windows just >kills it on shutdown ( this happens in other OS too depending on how >you manage it ). IIRC windows had infraestructure to do that with >services, but haven't used it since they launched XP so I'm really >rusty and outdated. Windows informs all processes that it is shutting down (or entering sleep, or waking up, etc.), but the notifications take different forms depending on whether the process is a service or a normal application. Services receive commands from the service manager, whereas applications receive environment control messages sent to their main window. pg_ctl is a command-line program that can run as a service. But since it creates no window, when run as an application it cannot receive any environment messages. If you run postgresql as an application, you need to stop the cluster manually before shutting down, or sleeping, etc. George -- Sent via pgsql-general mailing list (pgsql-general@xxxxxxxxxxxxxx) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-general