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:
>>
>> Install directory: "C:\PRGS\pgSQL\16"
>> DB-Directory: "C:\DB\pgSQL\16\data"
>>
>> Environment variable "PGDATA" is set to "C:\DB\pgSQL\16\data".
>>
>> Initialized the database. Then started postgres services using:
>>
>> c:\PRGS\pgSQL\16\bin\pg_ctl.exe start
>>
>> Worked nice. Server starts, the serves as expected. But: if I try to
>> start the service by "net start pgSQL" I am reported that "pg_ctl.exe"
>> could not find "postgres.exe".
>>
>> What I've tried:
>> - added environment variable "PGPATH" pointing to "C:\PRGS\pgSQL\16\bin"
>> -> did not help.
>>
>> - added "C:\PRGS\pgSQL\16\bin" to path. -> did not help either, even
>> after rebooting. I've added it to system path.
>>
>> Are paths somewhere within some configuration file or registry entry?
>> And set to standard install locations?
>
> 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
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