Thread: how to properly start postgresql with no TCP listeners in ubuntu16.04 LTS

how to properly start postgresql with no TCP listeners in ubuntu16.04 LTS

From
Alex Morris
Date:
Greetings,

This question may simply be my ignorance of what piece of the systemd / 
systemctl puzzle needs attention.  Any clues are appreciated.

Using postgreSQL version 9.5 as obtained from ubuntu repo.  Install was 
fine.  initdb and subsequent database use is fine.

Nothing is out of the ordinary except me being able to alter how 
postgres starts on boot (eg how postgres is called by init scripts or 
systemd ).

I wish to start postgres on boot with no TCP listeners, only unix-domain 
sockets.

I can achieve this goal by executing the following command as postgres 
user in a normal terminal session;

postgres -D /space/postgres -h '' -c listen_addresses=''

Starting the database in this manner results in stdout and stderr from 
postgres to show up in the terminal and not the default log file, but I 
can fix that.  Stopping the database cleanly when started in the above 
manner requires user postgres to give 'pg_ctl stop' command in another 
terminal.  Of course I can press ctrl-C in the terminal it was started 
from, and it dies..

I can also achieve the no TCP socket goal using a pg_ctl command, as 
postgres in a terminal;

pg_ctl start -D /space/postgres -o '-h "" -c listen_addresses=""'

where in the pg_ctl command, the single quotes protect the double 
quotes, which are placeholders for the empty parameter values needing to 
be passed to the actual postgres command..

I thought I could edit the postgresql.service / postgresql@.service 
files and use the systemctl method.  I have not yet discovered a way to 
pass the needed options and empty quotes, or any "special character" 
(special as seen by systemd I guess when reading in postgresql*.service 
files..) into the startup process.  Postgres will start but it's the 
default install values, and not my needed command line.

Seems like there ought to be a way to do what I need.  I just haven't 
found it yet.  Suggestions on what systemctl magic fruits or other 
system startup tool needs attention are most welcome.

Thanks in advance,
alex



Re: how to properly start postgresql with no TCP listeners in ubuntu16.04 LTS

From
Stephen Frost
Date:
Greetings,

* Alex Morris (alex.morris@twelvemountain.com) wrote:
> This question may simply be my ignorance of what piece of the systemd /
> systemctl puzzle needs attention.  Any clues are appreciated.

The simplest approach is to just modify the postgresql.conf file in
/etc/postgresql/9.5/main to update listen_addresses to be ''.

Thanks!

Stephen

Attachment

Re: how to properly start postgresql with no TCP listeners in ubuntu16.04 LTS

From
Alex Morris
Date:
On 1/23/19 19:15, Stephen Frost wrote:
> Greetings,
> 
> * Alex Morris (alex.morris@twelvemountain.com) wrote:
>> This question may simply be my ignorance of what piece of the systemd /
>> systemctl puzzle needs attention.  Any clues are appreciated.
> 
> The simplest approach is to just modify the postgresql.conf file in
> /etc/postgresql/9.5/main to update listen_addresses to be ''.
> 
> Thanks!
> 
> Stephen
> 

Thanks for the fast reply.  I had tried that earlier with no luck.  But 
it's working properly now.  I must have misspelled listener_addresses or 
used incorrect quote marks.  My issue is resolved.  Joy!

Thanks very much, Stephen!



On 1/23/19 8:41 PM, Alex Morris wrote:
> On 1/23/19 19:15, Stephen Frost wrote:
>> Greetings,
>>
>> * Alex Morris (alex.morris@twelvemountain.com) wrote:
>>> This question may simply be my ignorance of what piece of the systemd /
>>> systemctl puzzle needs attention.  Any clues are appreciated.
>>
>> The simplest approach is to just modify the postgresql.conf file in
>> /etc/postgresql/9.5/main to update listen_addresses to be ''.
>>
>> Thanks!
>>
>> Stephen
>>
>
> Thanks for the fast reply.  I had tried that earlier with no luck.  But 
> it's working properly now.  I must have misspelled listener_addresses or 
> used incorrect quote marks.  My issue is resolved.  Joy!

Note that Postgres has a repository for Ubuntu.  From there, you can install 
9.6, 10 and 11.

https://www.postgresql.org/download/linux/ubuntu/

-- 
Angular momentum makes the world go 'round.