From 8c5065c6d1036012996e4812788e48ca74bc1294 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Tue, 6 Sep 2022 16:12:56 +0200 Subject: [PATCH] services: nginx: Add 'shepherd-requirement' configuration field. * gnu/services/web.scm ()[shepherd-requirement]: New field. (nginx-shepherd-service): Honor it. * doc/guix.texi (Web Services): Document it. --- doc/guix.texi | 8 ++++++++ gnu/services/web.scm | 7 +++++-- 2 files changed, 13 insertions(+), 2 deletions(-) diff --git a/doc/guix.texi b/doc/guix.texi index d573695e72..20abfee772 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -28841,6 +28841,14 @@ types, or alternatively, a config file can be provided. @item @code{nginx} (default: @code{nginx}) The nginx package to use. +@item @code{shepherd-requirement} (default: @code{'()}) +This is a list of symbols naming Shepherd services the nginx service +will depend on. + +This is useful if you would like @command{nginx} to be started after a +back-end web server or a logging service such as Anonip has been +started. + @item @code{log-directory} (default: @code{"/var/log/nginx"}) The directory to which NGinx will write log files. diff --git a/gnu/services/web.scm b/gnu/services/web.scm index f0c7e90cbf..b144cf7076 100644 --- a/gnu/services/web.scm +++ b/gnu/services/web.scm @@ -93,6 +93,7 @@ nginx-configuration nginx-configuration? nginx-configuration-nginx + nginx-configuration-shepherd-requirement nginx-configuration-log-directory nginx-configuration-run-directory nginx-configuration-server-blocks @@ -556,6 +557,8 @@ nginx-configuration? (nginx nginx-configuration-nginx ;file-like (default nginx)) + (shepherd-requirement nginx-configuration-shepherd-requirement + (default '())) ;list of symbols (log-directory nginx-configuration-log-directory ;string (default "/var/log/nginx")) (run-directory nginx-configuration-run-directory ;string @@ -779,7 +782,7 @@ of index files." (define (nginx-shepherd-service config) (match-record config - (nginx file run-directory) + (nginx file run-directory shepherd-requirement) (let* ((nginx-binary (file-append nginx "/sbin/nginx")) (pid-file (in-vicinity run-directory "pid")) (nginx-action @@ -803,7 +806,7 @@ of index files." (list (shepherd-service (provision '(nginx)) (documentation "Run the nginx daemon.") - (requirement '(user-processes loopback)) + (requirement `(user-processes loopback ,@shepherd-requirement)) (modules `((ice-9 match) ,@%default-modules)) (start (nginx-action "-p" run-directory))