Обсуждение: [ADMIN] Change Unix Socket directory at build time

Поиск
Список
Период
Сортировка

[ADMIN] Change Unix Socket directory at build time

От
Santiago DIEZ
Дата:
Hi,

I usualy change the unix_socket_directory in the server configuration but I'd like to change it for good at build time. I read everywhere (here for example):
"unix_socket_directories (string)
The default value is normally /tmp, but that can be changed at build time."

Ok good but I've read ./configure --help and I cannot find how to do it.

Can anyone help me?

Regards
-------------------------
Santiago DIEZ
Quark Systems & CAOBA
23 rue du Buisson Saint-Louis, 75010 Paris
-------------------------

Re: [ADMIN] Change Unix Socket directory at build time

От
Andres Freund
Дата:
Hi,

On 2017-04-14 17:55:39 +0200, Santiago DIEZ wrote:
> I usualy change the unix_socket_directory in the server configuration but
> I'd like to change it for good at build time. I read everywhere (here
> <https://www.postgresql.org/docs/current/static/runtime-config-connection.html>
> for example):
> "unix_socket_directories (string)
> The default value is normally /tmp, but that can be changed at build time."
>
> Ok good but I've read ./configure --help and I cannot find how to do it.

You need to edit src/include/pg_config_manual.h and adapat DEFAULT_PGSOCKET_DIR

- Andres


Re: [ADMIN] Change Unix Socket directory at build time

От
Santiago DIEZ
Дата:
Fantastic, I have never dug into the .h files when building any
program. That's quite new to me.
Is the # character a comment or not? It seems like all line start with #define

-------------------------
Santiago DIEZ
Quark Systems & CAOBA
23 rue du Buisson Saint-Louis, 75010 Paris
-------------------------

On Fri, Apr 14, 2017 at 6:21 PM, Andres Freund <andres@anarazel.de> wrote:
>
> Hi,
>
> On 2017-04-14 17:55:39 +0200, Santiago DIEZ wrote:
> > I usualy change the unix_socket_directory in the server configuration but
> > I'd like to change it for good at build time. I read everywhere (here
> > <https://www.postgresql.org/docs/current/static/runtime-config-connection.html>
> > for example):
> > "unix_socket_directories (string)
> > The default value is normally /tmp, but that can be changed at build time."
> >
> > Ok good but I've read ./configure --help and I cannot find how to do it.
>
> You need to edit src/include/pg_config_manual.h and adapat DEFAULT_PGSOCKET_DIR
>
> - Andres


Re: [ADMIN] Change Unix Socket directory at build time

От
Santiago DIEZ
Дата:
To be fully transparent, the issue I'm dealing with is the following:
If I set a specific unix_socket_directory in postgresql.conf then running
pg_ctl start -w -t5 -D '/val/lib/postgresql/9.4/main'
fails because I believe it cannot verify the server is running because
it's looking for socket in /tmp.
The command fails but the server is started and running.
I don't know if it makes any sense.

On a larger scale I only hope to solve part of the problem because if
I don't configure unix_socket_directory, then pg_ctl will wait for the
creation of a socket in /var/run/postgresql and will believe the
server is not started although it is.

So a more general question would be: "how to make sure pg_ctl expects
the socket in the right place whatever the config is?"

-------------------------
Santiago DIEZ
Quark Systems & CAOBA
23 rue du Buisson Saint-Louis, 75010 Paris
-------------------------


On Fri, Apr 14, 2017 at 6:33 PM, Santiago DIEZ <santiago.diez@caoba.fr> wrote:
> Fantastic, I have never dug into the .h files when building any
> program. That's quite new to me.
> Is the # character a comment or not? It seems like all line start with #define
>
> -------------------------
> Santiago DIEZ
> Quark Systems & CAOBA
> 23 rue du Buisson Saint-Louis, 75010 Paris
> -------------------------
>
> On Fri, Apr 14, 2017 at 6:21 PM, Andres Freund <andres@anarazel.de> wrote:
>>
>> Hi,
>>
>> On 2017-04-14 17:55:39 +0200, Santiago DIEZ wrote:
>> > I usualy change the unix_socket_directory in the server configuration but
>> > I'd like to change it for good at build time. I read everywhere (here
>> > <https://www.postgresql.org/docs/current/static/runtime-config-connection.html>
>> > for example):
>> > "unix_socket_directories (string)
>> > The default value is normally /tmp, but that can be changed at build time."
>> >
>> > Ok good but I've read ./configure --help and I cannot find how to do it.
>>
>> You need to edit src/include/pg_config_manual.h and adapat DEFAULT_PGSOCKET_DIR
>>
>> - Andres


Re: [ADMIN] Change Unix Socket directory at build time

От
"David G. Johnston"
Дата:
On Fri, Apr 14, 2017 at 9:43 AM, Santiago DIEZ <santiago.diez@caoba.fr> wrote:
To be fully transparent, the issue I'm dealing with is the following:
If I set a specific unix_socket_directory in postgresql.conf then running
pg_ctl start -w -t5 -D '/val/lib/postgresql/9.4/main'
fails because I believe it cannot verify the server is running because
it's looking for socket in /tmp.

More likely is that it takes more than 5 seconds to start and you are timing out. (I'll presume */val* is a typo in the email only)

The source code for pg_ctl indicates that the "pid file" the postmaster creates at startup contains the information needed for both unix and tcp socket connections and this is where pg_ctl gets its "connection string" information from.

Supplying logging data from the pg_ctl run would help.

David J.

Re: [ADMIN] Change Unix Socket directory at build time

От
Santiago DIEZ
Дата:
no no, if I set -t to 60 seconds (or even 1000), it's the same problem.

-------------------------
Santiago DIEZ
Quark Systems & CAOBA
23 rue du Buisson Saint-Louis, 75010 Paris
-------------------------


On Fri, Apr 14, 2017 at 7:05 PM, David G. Johnston
<david.g.johnston@gmail.com> wrote:
> On Fri, Apr 14, 2017 at 9:43 AM, Santiago DIEZ <santiago.diez@caoba.fr>
> wrote:
>>
>> To be fully transparent, the issue I'm dealing with is the following:
>> If I set a specific unix_socket_directory in postgresql.conf then running
>> pg_ctl start -w -t5 -D '/val/lib/postgresql/9.4/main'
>> fails because I believe it cannot verify the server is running because
>> it's looking for socket in /tmp.
>
>
> More likely is that it takes more than 5 seconds to start and you are timing
> out. (I'll presume */val* is a typo in the email only)
>
> The source code for pg_ctl indicates that the "pid file" the postmaster
> creates at startup contains the information needed for both unix and tcp
> socket connections and this is where pg_ctl gets its "connection string"
> information from.
>
> Supplying logging data from the pg_ctl run would help.
>
> David J.
>


Re: [ADMIN] Change Unix Socket directory at build time

От
Tom Lane
Дата:
Santiago DIEZ <santiago.diez@caoba.fr> writes:
> no no, if I set -t to 60 seconds (or even 1000), it's the same problem.

David's right though: any reasonably modern version of pg_ctl (since
about 9.1 I believe) gets everything it needs to know out of the
postmaster.pid file.  Compiling in a different default
unix_socket_directory might save some effort when using psql or other
clients, but it should make no difference to pg_ctl.

It might be useful to strace pg_ctl to see what it's doing in the
problem case.

            regards, tom lane