aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristopher Baines <mail@cbaines.net>2021-01-01 09:58:29 +0000
committerChristopher Baines <mail@cbaines.net>2021-01-01 09:58:29 +0000
commit3ac3f226f32dac17500974ec0319fdeff42d22d4 (patch)
treec94c1ec84e14423471f91da7b845e82d52895862
parent153151a865cfae5e7f8c8d98be78b238a6cc7a33 (diff)
downloadguix-postgres-pg_ctl-logging.tar
guix-postgres-pg_ctl-logging.tar.gz
services: postgresql: Log from pg_ctl.postgres-pg_ctl-logging
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.
-rw-r--r--gnu/services/databases.scm5
1 files changed, 5 insertions, 0 deletions
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