services: herd: Use a smarter default for %shepherd-socket-file.

This makes it possible to use it for the privileged (root) user as well as an
unprivileged user.

* gnu/services/herd.scm (%shepherd-socket-file): Use
/run/user/$uid/shepherd/socket when using an unprivileged user.

Change-Id: I62cf358ffc233aba61cc64235c4b67c4fc944d2e
This commit is contained in:
Maxim Cournoyer 2025-04-21 10:02:36 +09:00
parent 539066032a
commit 367d071bba
No known key found for this signature in database
GPG key ID: 1260E46482E63562

View file

@ -74,7 +74,10 @@
;;; Code:
(define %shepherd-socket-file
(make-parameter "/var/run/shepherd/socket"))
(let ((uid (getuid)))
(make-parameter (if (zero? uid) ;root
"/var/run/shepherd/socket"
(format #f "/run/user/~a/shepherd/socket" uid)))))
(define* (open-connection #:optional (file (%shepherd-socket-file)))
"Open a connection to the daemon, using the Unix-domain socket at FILE, and