mirror of
https://codeberg.org/guix/guix.git
synced 2025-10-02 02:15:12 +00:00
services: guix: Streamline the default ‘start’ case.
* gnu/services/base.scm (guix-shepherd-service): In ‘start’ method, use ‘fork+exec-command’ in the default case. Change-Id: Id04d3d2651f89fbcdb2f17f027df91e132ff9ed1
This commit is contained in:
parent
b16e3f451f
commit
96ae99c957
1 changed files with 14 additions and 17 deletions
|
@ -2137,23 +2137,20 @@ proxy of 'guix-daemon'...~%")
|
|||
(gid (if group (group:gid (getgrnam group)) -1)))
|
||||
(chown "/var/guix/daemon-socket" uid gid))
|
||||
|
||||
;; Start the guix-daemon from a container, when supported,
|
||||
;; to solve an installation issue. See the comment below for
|
||||
;; more details.
|
||||
(fork+exec-command/container
|
||||
daemon-command
|
||||
|
||||
;; When running the installer, we need guix-daemon to
|
||||
;; operate from within the same MNT namespace as the
|
||||
;; installation container. In that case only, enter the
|
||||
;; namespace of the process PID passed as start argument.
|
||||
;; Otherwise, for symmetry purposes enter the caller
|
||||
;; namespaces which is a no-op.
|
||||
#:pid (match args
|
||||
((pid) (string->number pid))
|
||||
(else (getpid)))
|
||||
#:environment-variables environment-variables
|
||||
#:log-file #$log-file))))
|
||||
(match args
|
||||
(((= string->number (? integer? pid)))
|
||||
;; Start the guix-daemon in the same mnt namespace as
|
||||
;; PID. This is necessary when running the installer.
|
||||
(fork+exec-command/container
|
||||
daemon-command
|
||||
#:pid pid
|
||||
#:environment-variables environment-variables
|
||||
#:log-file #$log-file))
|
||||
(()
|
||||
(fork+exec-command daemon-command
|
||||
#:environment-variables
|
||||
environment-variables
|
||||
#:log-file #$log-file))))))
|
||||
(stop #~(make-kill-destructor))))))
|
||||
|
||||
(define (guix-accounts config)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue