whk via <[email protected]> writes:

> Can I just manually create them (or specify them in my system's
> config.scm)

Yes.  On my server I am using the following shepherd service to take
care of that.  User shepherd starts fine, and everything works, as far
as I can tell.  I do not have any process with `dbus' in name running,
so that is probably also not a requirement.

--8<---------------cut here---------------start------------->8---
(simple-service
 'make-xdg-runtime-dir shepherd-root-service-type
 (list (shepherd-service
         (provision '(xdg-runtime-dir))
         (requirement '(file-systems))
         (documentation "Create /run/user/... directories.")
         (start #~(λ _
                    (for-each
                     (λ (user)
                       (mkdir-p "/run/user")
                       (let* ((pw (getpw user))
                              (uid (number->string (passwd:uid pw)))
                              (gid (number->string (passwd:gid pw)))
                              (dir (string-append "/run/user/" uid)))
                         (unless (file-exists? dir)
                           (mkdir-p dir)
                           (mount "none" dir "tmpfs"
                                  (logior MS_NOSUID MS_NODEV)
                                  (string-append "mode=700"
                                                 ",uid=" uid
                                                 ",gid=" gid
                                                 ",size=10M")))))
                     '#$(map user-name %users))))
         (one-shot? #t))))
--8<---------------cut here---------------end--------------->8---

Tomas

-- 
There are only two hard things in Computer Science:
cache invalidation, naming things and off-by-one errors.

Attachment: signature.asc
Description: PGP signature

Reply via email to