M doc/guix.texi => doc/guix.texi +13 -6
@@ 3299,6 3299,9 @@ like:
(return (service
(documentation "Run libc's name service cache daemon.")
(provision '(nscd))
+ (activate #~(begin
+ (use-modules (guix build utils))
+ (mkdir-p "/var/run/nscd")))
(start #~(make-forkexec-constructor
(string-append #$glibc "/sbin/nscd")
"-f" "/dev/null" "--foreground"))
@@ 3307,12 3310,16 @@ like:
@end lisp
@noindent
-The @code{start} and @code{stop} fields are G-expressions
-(@pxref{G-Expressions}). They refer to dmd's facilities to start and
-stop processes (@pxref{Service De- and Constructors,,, dmd, GNU dmd
-Manual}). The @code{provision} field specifies the name under which
-this service is known to dmd, and @code{documentation} specifies on-line
-documentation. Thus, the commands @command{deco start ncsd},
+The @code{activate}, @code{start}, and @code{stop} fields are G-expressions
+(@pxref{G-Expressions}). The @code{activate} field contains a script to
+run at ``activation'' time; it makes sure that the @file{/var/run/nscd}
+directory exists before @command{nscd} is started.
+
+The @code{start} and @code{stop} fields refer to dmd's facilities to
+start and stop processes (@pxref{Service De- and Constructors,,, dmd,
+GNU dmd Manual}). The @code{provision} field specifies the name under
+which this service is known to dmd, and @code{documentation} specifies
+on-line documentation. Thus, the commands @command{deco start ncsd},
@command{deco stop nscd}, and @command{deco doc nscd} will do what you
would expect (@pxref{Invoking deco,,, dmd, GNU dmd Manual}).
M gnu/services/base.scm => gnu/services/base.scm +5 -0
@@ 225,6 225,11 @@ stopped before 'kill' is called."
(documentation "Run libc's name service cache daemon (nscd).")
(provision '(nscd))
(requirement '(user-processes))
+
+ (activate #~(begin
+ (use-modules (guix build utils))
+ (mkdir-p "/var/run/nscd")))
+
(start
#~(make-forkexec-constructor (string-append #$glibc "/sbin/nscd")
"-f" "/dev/null"
M guix/build/install.scm => guix/build/install.scm +1 -1
@@ 76,9 76,9 @@ STORE."
`((directory ,store 0 0)
(directory "/etc")
(directory "/var/log") ; for dmd
- (directory "/var/run/nscd")
(directory "/var/guix/gcroots")
(directory "/var/empty") ; for no-login accounts
+ (directory "/var/run")
(directory "/run")
("/var/guix/gcroots/booted-system" -> "/run/booted-system")
("/var/guix/gcroots/current-system" -> "/run/current-system")