how to properly start postgresql with no TCP listeners in ubuntu16.04 LTS - Mailing list pgsql-general

From Alex Morris
Subject how to properly start postgresql with no TCP listeners in ubuntu16.04 LTS
Date
Msg-id 985c8553-4543-8b73-d455-0813873147d6@twelvemountain.com
Whole thread Raw
Responses Re: how to properly start postgresql with no TCP listeners in ubuntu16.04 LTS  (Stephen Frost <sfrost@snowman.net>)
List pgsql-general
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



pgsql-general by date:

Previous
From: Jerry Sievers
Date:
Subject: Re: Reclaiming space for dropped database
Next
From: Stephen Frost
Date:
Subject: Re: how to properly start postgresql with no TCP listeners in ubuntu16.04 LTS