diff options
-rw-r--r-- | gnu/services/web.scm | 28 |
1 files changed, 11 insertions, 17 deletions
diff --git a/gnu/services/web.scm b/gnu/services/web.scm index e8b1657a2a..289177d1ca 100644 --- a/gnu/services/web.scm +++ b/gnu/services/web.scm @@ -1891,23 +1891,17 @@ WSGIPassAuthorization On (define (patchwork-django-admin-gexp patchwork settings-module) #~(lambda (_ . command) - (let ((pid (primitive-fork))) - (if (eq? pid 0) - (let ((user (getpwnam "httpd"))) - (setgid (passwd:gid user)) - (setuid (passwd:uid user)) - - (let ((pid - (spawn - #$(file-append patchwork "/bin/patchwork-admin") - (cons #$(file-append patchwork "/bin/patchwork-admin") - command) - #:environment - `("DJANGO_SETTINGS_MODULE=guix.patchwork.settings" - ,(string-append "PYTHONPATH=" #$settings-module) - ,@(environ))))) - (waitpid pid))) - (zero? (cdr (waitpid pid))))))) + (let ((pid + (fork+exec-command + (cons #$(file-append patchwork "/bin/patchwork-admin") + command) + #:user "httpd" + #:group "httpd" + #:environment + `("DJANGO_SETTINGS_MODULE=guix.patchwork.settings" + ,(string-append "PYTHONPATH=" #$settings-module) + ,@(environ))))) + (waitpid pid)))) (define (patchwork-django-admin-action patchwork settings-module) (shepherd-action |