public inbox for [email protected]
help / color / mirror / Atom feedFrom: Thomas Schweikle <[email protected]>
To: [email protected] <[email protected]>
Subject: Re: Postgres service not starting on windows after install if not installed into standard locations
Date: Thu, 21 Nov 2024 14:10:36 +0000
Message-ID: <[email protected]> (raw)
In-Reply-To: <[email protected]>
References: <[email protected]>
<[email protected]>
<[email protected]>
<[email protected]>
Am Mi., 20.Nov..2024 um 18:15:42 schrieb Adrian Klaver:
> On 11/20/24 05:26, Thomas Schweikle wrote:
>> Am Mo., 18.Nov..2024 um 19:43:36 schrieb Laurenz Albe:
>>> On Mon, 2024-11-18 at 17:22 +0000, Thomas Schweikle wrote:
>>>> Had installed PostgreSQL 16.5 on Windows 10:
>
>>> How exactly is the Windows service defined?
>>> Perhaps you need to use an absolute path for the executable.
>>
>> Servicename: postgresql-x64-16
>> Name: postgresql-x64-16-PostgreSQL Server 16
>> Comment: Provides relational database storage
>> Path: "C:\PRGS\pgSQL\16\bin\pg_ctl.exe"
>> runservice -N "postgresql-x64-16"
>> -D "C:\DB\pgSQL\16\data" -w
>> Type: Automatic
>> Account: Networkservice
>> Password: set
>> Dependencies:RPC, DCOM-Service, RPC-Endpoint
>
>
> Did you change settings during the install?
I called the installer with:
.\postgresql-16.5-1-windows-x64.exe
Then changed install path to: "C:\PRGS\pgSQL"
And database path to: "C:\DB\pgSQL"
After a while postgres got installed into "C:\PRGS\pgSQL\16" and the
database path was created: "C:\DB\pgSQL\16\data", but the database was
not created. Calling pg_initdb did the job and created the database
within the given folder.
Calling "pg_ctl start" gave a message, that "pg_ctl.exe" could not find
"postgres.exe" -- I prepended "C:\PRGS\pgSQL\16\bin" to %PATH%. Next
thing was that pg_ctl could not find the just, with pg_initdb, created
database. So I've set up PGDATA to point to "C:\DB\pgSQL\16\data". Both
within the global system environment of windows.
Tried again to start postgres via "pg_ctl start". This time postgres got
up and running instantly.
Then stopped postgres again: "pg_ctl.exe stop". And tried it using "net
start postgresql-x64-16". This failed. "pg_ctl.exe" called could not
find "postgres.exe".
Looking at the logs "pg_ctl.exe" stated it could not find "postgres.exe"
again. Since %PGDATA% and %PATH% where set within system environment
these are to be global and shall be active for services too.
Looking closer on "pg_ctl.exe" I found it using a build in path of
"C:\Program files\PostgreSQL\16\bin\postgres.exe", regardless of any
environment variables set if started without any of stdout, stdin,
stderr, what is the case if it is started as a service.
> Here on my Windows machine I get:
>
> C:\Program Files\PostgreSQL\bin
>> Errors found within system logs:
>> pg_ctl: could not find program 'postgres.exe'
>>
>> Seems, since "C:\PRGS\pgSQL\16\bin" is in system path, it does not
>> search there at all:
>>
>> # dir "C:\PRGS\pgSQL\16\bin"
>> [...]
>> Mi, 13.Nov.2024 13:24 123.392 pg_ctl.exe
>> [...]
>> Mi, 13.Nov.2024 13:24 8.659.968 postgres.exe
>>
>> Any way to tell a service in Windows to use a path?
>> Any registry key to assign a path to?
>>
>> # sc qc "postgresql-x64-16"
>> [SC] QueryServiceConfig ERFOLG
>>
>> SERVICE_NAME: postgresql-x64-16
>> TYPE : 10 WIN32_OWN_PROCESS
>> START_TYPE : 2 AUTO_START
>> ERROR_CONTROL : 1 NORMAL
>> BINARY_PATH_NAME : "C:\PRGS\pgSQL\16\bin\pg_ctl.exe"
>> runservice -N "postgresql-x64-16" -D "C:\DB\pgSQL\16\data" -w
>> LOAD_ORDER_GROUP :
>> TAG : 0
>> DISPLAY_NAME : postgresql-x64-16 - PostgreSQL Server 16
>> DEPENDENCIES : RPCSS
>> SERVICE_START_NAME : NT AUTHORITY\NetworkService
>>
>>
>
--
Thomas
view thread (3+ messages) latest in thread
reply
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Reply to all the recipients using the --to and --cc options:
reply via email
To: [email protected]
Cc: [email protected], [email protected]
Subject: Re: Postgres service not starting on windows after install if not installed into standard locations
In-Reply-To: <[email protected]>
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
This inbox is served by agora; see mirroring instructions
for how to clone and mirror all data and code used for this inbox