Message ID | 20210101101015.6524-1-mail@cbaines.net |
---|---|
State | Accepted |
Headers | show |
Series | [bug#45588] services: postgresql: Log from pg_ctl. | expand |
Context | Check | Description |
---|---|---|
cbaines/submitting builds | success | |
cbaines/comparison | success | View comparision |
cbaines/git branch | success | View Git branch |
cbaines/applying patch | success | View Laminar job |
cbaines/issue | success | View issue |
Hello Chris, > 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. On Ubuntu, I noticed that pg_ctl logs are located in '/var/log/postgresql/postgresql-12-main.log'. Turns out it's using a Debian wrapper called pg_ctlcluster around pg_ctl that is setting up logging between other things. You could maybe call the log file 'pg_ctl.log', otherwise seems fine. Thanks, Mathieu
Hello Chris,
> You could maybe call the log file 'pg_ctl.log', otherwise seems fine.
I added what you proposed to a patch refactoring PostgreSQL service
here: https://issues.guix.gnu.org/45860.
Thanks,
Mathieu
Christopher Baines <mail@cbaines.net> 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
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