diff options
author | Ludovic Courtès <ludo@gnu.org> | 2018-09-08 18:48:48 +0200 |
---|---|---|
committer | Ludovic Courtès <ludo@gnu.org> | 2018-09-08 23:02:00 +0200 |
commit | 985975ae80fe5a8e58319b3a5aaf14da940c4419 (patch) | |
tree | 631400380ee9d82df6c27db50a2b9c83340dd7f5 /gnu/services | |
parent | c665774a1ca9431746b1d559b06e24c1b05625d8 (diff) | |
download | gnu-guix-985975ae80fe5a8e58319b3a5aaf14da940c4419.tar gnu-guix-985975ae80fe5a8e58319b3a5aaf14da940c4419.tar.gz |
services: nginx: Don't read PID file when passed a custom config file.
Fixes <https://bugs.gnu.org/32665>.
* gnu/services/web.scm (nginx-shepherd-service): Check whether FILE is
true and don't read the PID file if it is; use 'read-pid-file' instead
of a potentially endless loop.
Diffstat (limited to 'gnu/services')
-rw-r--r-- | gnu/services/web.scm | 14 |
1 files changed, 6 insertions, 8 deletions
diff --git a/gnu/services/web.scm b/gnu/services/web.scm index 3778efd048..1c993b29fe 100644 --- a/gnu/services/web.scm +++ b/gnu/services/web.scm @@ -610,14 +610,12 @@ of index files." (match '#$args (("-s" . _) #t) (_ - (let loop ((duration 0)) - ;; https://bugs.launchpad.net/ubuntu/+source/nginx/+bug/1581864/comments/7 - (sleep duration) - (if (file-exists? #$pid-file) - (let ((pid (call-with-input-file #$pid-file read))) - ;; it could be #<eof> - (if (integer? pid) pid (loop 1))) - (loop 1))))))))) + ;; When FILE is true, we cannot be sure that PID-FILE will + ;; be created, so assume it won't show up. When FILE is + ;; false, read PID-FILE. + #$(if file + #~#t + #~(read-pid-file #$pid-file)))))))) ;; TODO: Add 'reload' action. (list (shepherd-service |