Subject: Re: [bug#45588] [PATCH] services: postgresql: Log from pg_ctl.

From: Christopher Baines <[email-masked]>
Date: Mon, 22 Feb 2021 22:30:58 +0000

Christopher Baines <[email-masked]> writes:

> pg_ctl will output errors when starting PostgreSQL, for example about errors
> in the configuration file. Without getting pg_ctl to log to a file, I'm not
> sure how to find those errors.
>
> * gnu/services/databases.scm (postgresql-activation): Create
> /var/log/postgresql.
> (postgresql-shepherd-service): Pass --log=/var/log/postgresql/pg_ctl to
> pg_ctl.
> ---
>  gnu/services/databases.scm | 5 +++++
>  1 file changed, 5 insertions(+)
>
> diff --git a/gnu/services/databases.scm b/gnu/services/databases.scm
> index d2dc5f0da8..479a3c56f7 100644
> --- a/gnu/services/databases.scm
> +++ b/gnu/services/databases.scm
> @@ -205,6 +205,10 @@ host	all	all	::1/128 	md5"))
>             (mkdir-p #$data-directory)
>             (chown #$data-directory (passwd:uid user) (passwd:gid user))
>  
> +           ;; Create log directory
> +           (mkdir-p "/var/log/postgresql")
> +           (chown "/var/log/postgresql" (passwd:uid user) (passwd:gid user))
> +
>             ;; Drop privileges and init state directory in a new
>             ;; process.  Wait for it to finish before proceeding.
>             (match (primitive-fork)
> @@ -247,6 +251,7 @@ host	all	all	::1/128 	md5"))
>                         (setgid (passwd:gid user))
>                         (setuid (passwd:uid user))
>                         (execl pg_ctl pg_ctl "-D" #$data-directory "-o" options
> +                              "--log=/var/log/postgresql/pg_ctl"
>                                mode)))))))
>              (pid-file (in-vicinity data-directory "postmaster.pid"))
>              (action (lambda args

This conflicts with
https://git.savannah.gnu.org/cgit/guix.git/commit/?id=fe4b8823505c3271fc3eacaa93c30a5cec078739