Re: 9.5 CentOS 7 setting PGDATA for systemctl - Mailing list pgsql-general

From Adrian Klaver
Subject Re: 9.5 CentOS 7 setting PGDATA for systemctl
Date
Msg-id 8b843821-6810-f93d-4428-8b8226abf1cd@aklaver.com
Whole thread Raw
In response to 9.5 CentOS 7 setting PGDATA for systemctl  (Tory M Blue <tmblue@gmail.com>)
Responses Re: 9.5 CentOS 7 setting PGDATA for systemctl
List pgsql-general
On 05/21/2016 10:27 PM, Tory M Blue wrote:
> Evening, morning, or afternoon,
>
> So I'm trying to go back to a stock rpm package (vs my full custom,
> builds).  This is a learning curve, not only because it's all "whacked
> pathing (in my eyes:)) but rhel7 is a #$%$# with all the things they
> changed.

So where did you get the 'stock' RPM's from, CentOS or the Postgres repos?


>
> Sooo
>
> I've got servers built and I've got the correct data path initialized
> and postgres can start the db "   /usr/pgsql-9.5/bin/pg_ctl -D
> /pgsql/9.5/data -l logfile start"
>
> But obviously systemctl start postgresql-9.5.server loses it's head
> because it has no idea where my Data directory is and setting , PGDATA
>  as a variable, doesn't seem to work.
>
> So how do I kick CentOS 7 in the teeth and make it change it's
> attitude regarding where I have put things?  /var/lib/pgsql (really?)
> I don't want to do symlinks.
>
> I've got it installed and running, but postgres can't be the only
> place to start/stop the server. I need systemctl to handle these tasks
> as well.
>
> The init program is all kinds of weirdness.

This would be the init program included with the RPM?

Is it written for traditional init or systemd?


>
> Any pointers, as I'm starting to lose sleep over this! :)
>
> Thanks
> Tory
>
> PGDATA=`sed -n 's/Environment=PGDATA=//p' "${SERVICE_FILE}"`
>
> and
>
> # this parsing technique fails for PGDATA pathnames containing spaces,
>
> # but there's not much I can do about it given systemctl's output format...
>
> PGDATA=`systemctl show -p Environment "${SERVICE_NAME}.service" |
>
>                 sed 's/^Environment=//' | tr ' ' '\n' |
>
>                 sed -n 's/^PGDATA=//p' | tail -n 1`
>
> if [ x"$PGDATA" = x ]; then
>
>     echo "failed to find PGDATA setting in ${SERVICE_NAME}.service"
>
>     exit 1
>
> fi
>
>


--
Adrian Klaver
adrian.klaver@aklaver.com


pgsql-general by date:

Previous
From: "dandl"
Date:
Subject: Fatal error "stack empty" on ROLLBACK
Next
From: Tory M Blue
Date:
Subject: Re: 9.5 CentOS 7 setting PGDATA for systemctl