Hi! I've noticed that while all my user services (managed via GNU Stow -- not via Guix Home) were working, 'herd status' would report that /run/user/1000/shepherd/socket was missing and bail out. Starting from a nonexistent /run/user/1000/shepherd/socket, using old Shepherd 0.9.1: --8<---------------cut here---------------start------------->8--- $ /gnu/store/dblbnj1yra4yrrfjbnzsa0ldcl3170ap-shepherd-0.9.1/bin/shepherd Service root has been started. WARNING: Use of `load' in declarative module (#{ g115}#). Add #:declarative? #f to your define-module invocation. Some deprecated features have been used. Set the environment variable GUILE_WARN_DEPRECATED to "detailed" and rerun the program to get more information. Set it to "no" to suppress this message. $ Warning: due to a long standing Gtk+ bug https://gitlab.gnome.org/GNOME/gtk/issues/221 Emacs might crash when run in daemon mode and the X11 connection is unexpectedly lost. Using an Emacs configured with --with-x-toolkit=lucid does not have this problem. Loading time (native compiled elisp)... Loading time (native compiled elisp)...done Loading /home/maxim/.emacs.d/recentf... Loading /home/maxim/.emacs.d/recentf...done Cleaning up the recentf list... Cleaning up the recentf list...done (0 removed) ../../.emacs: Warning: Use keywords rather than deprecated positional arguments to `define-minor-mode' Preparing diary... No diary entries for Friday, June 9, 2023 Preparing diary...done Appointment reminders enabled Loading /home/maxim/.emacs.d/emms/cache... Loading /home/maxim/.emacs.d/emms/cache...done [yas] Prepared just-in-time loading of snippets successfully. [yas] Prepared just-in-time loading of snippets successfully. Starting new Ispell process aspell with english dictionary... \ Starting new Ispell process aspell with english dictionary...done Starting Emacs daemon. Unable to start the daemon. Another instance of Emacs is running the server, either as daemon or interactively. You can use emacsclient to connect to that Emacs process. Saving file /home/maxim/.emacs.d/emms/history... Wrote /home/maxim/.emacs.d/emms/history Wrote /home/maxim/.emacs.d/recentf Error: server did not start correctly Service emacs could not be started. gpg-agent: a gpg-agent is already running - not starting a new one Service gpg-agent could not be started. Service ibus-daemon has been started. $ herd status Started: + ibus-daemon + root Stopped: - emacs - gpg-agent - jackd - workrave --8<---------------cut here---------------end--------------->8--- If I then run it anew, it fails with "shepherd: while opening socket '/run/user/1000/shepherd/socket': bind: Address already in use", because apparently 'herd stop root' didn't remove it. --8<---------------cut here---------------start------------->8--- $ herd stop root Exiting. [...] $ /gnu/store/dblbnj1yra4yrrfjbnzsa0ldcl3170ap-shepherd-0.9.1/bin/shepherd Service root has been started. WARNING: Use of `load' in declarative module (#{ g115}#). Add #:declarative? #f to your define-module invocation. Some deprecated features have been used. Set the environment variable GUILE_WARN_DEPRECATED to "detailed" and rerun the program to get more information. Set it to "no" to suppress this message. maxim@hurd ~/src/guix [env]$ Warning: due to a long standing Gtk+ bug https://gitlab.gnome.org/GNOME/gtk/issues/221 Emacs might crash when run in daemon mode and the X11 connection is unexpectedly lost. Using an Emacs configured with --with-x-toolkit=lucid does not have this problem. Loading time (native compiled elisp)... Loading time (native compiled elisp)...done Loading /home/maxim/.emacs.d/recentf... Loading /home/maxim/.emacs.d/recentf...done Cleaning up the recentf list... Cleaning up the recentf list...done (0 removed) ../../.emacs: Warning: Use keywords rather than deprecated positional arguments to `define-minor-mode' Preparing diary... No diary entries for Friday, June 9, 2023 Preparing diary...done Appointment reminders enabled Loading /home/maxim/.emacs.d/emms/cache... Loading /home/maxim/.emacs.d/emms/cache...done [yas] Prepared just-in-time loading of snippets successfully. [yas] Prepared just-in-time loading of snippets successfully. Starting new Ispell process aspell with english dictionary... \ Starting new Ispell process aspell with english dictionary...done Starting Emacs daemon. Unable to start the daemon. Another instance of Emacs is running the server, either as daemon or interactively. You can use emacsclient to connect to that Emacs process. Saving file /home/maxim/.emacs.d/emms/history... Wrote /home/maxim/.emacs.d/emms/history Wrote /home/maxim/.emacs.d/recentf Error: server did not start correctly Service emacs could not be started. gpg-agent: a gpg-agent is already running - not starting a new one Service gpg-agent could not be started. Service ibus-daemon has been started. shepherd: while opening socket '/run/user/1000/shepherd/socket': bind: Address already in use Exiting shepherd... Service ibus-daemon has been stopped. Some deprecated features have been used. Set the environment variable GUILE_WARN_DEPRECATED to "detailed" and rerun the program to get more information. Set it to "no" to suppress this message. $ --8<---------------cut here---------------end--------------->8--- Even after removing it manually with 'rm /run/user/1000/shepherd/socket', it still fails: --8<---------------cut here---------------start------------->8--- $ /gnu/store/dblbnj1yra4yrrfjbnzsa0ldcl3170ap-shepherd-0.9.1/bin/shepherd Service root has been started. WARNING: Use of `load' in declarative module (#{ g115}#). Add #:declarative? #f to your define-module invocation. Some deprecated features have been used. Set the environment variable GUILE_WARN_DEPRECATED to "detailed" and rerun the program to get more information. Set it to "no" to suppress this message. maxim@hurd ~/src/guix [env]$ Warning: due to a long standing Gtk+ bug https://gitlab.gnome.org/GNOME/gtk/issues/221 Emacs might crash when run in daemon mode and the X11 connection is unexpectedly lost. Using an Emacs configured with --with-x-toolkit=lucid does not have this problem. Loading time (native compiled elisp)... Loading time (native compiled elisp)...done Loading /home/maxim/.emacs.d/recentf... Loading /home/maxim/.emacs.d/recentf...done Cleaning up the recentf list... Cleaning up the recentf list...done (0 removed) ../../.emacs: Warning: Use keywords rather than deprecated positional arguments to `define-minor-mode' Preparing diary... No diary entries for Friday, June 9, 2023 Preparing diary...done Appointment reminders enabled Loading /home/maxim/.emacs.d/emms/cache... Loading /home/maxim/.emacs.d/emms/cache...done [yas] Prepared just-in-time loading of snippets successfully. [yas] Prepared just-in-time loading of snippets successfully. Starting new Ispell process aspell with english dictionary... \ Starting new Ispell process aspell with english dictionary...done Starting Emacs daemon. Unable to start the daemon. Another instance of Emacs is running the server, either as daemon or interactively. You can use emacsclient to connect to that Emacs process. Saving file /home/maxim/.emacs.d/emms/history... Wrote /home/maxim/.emacs.d/emms/history Wrote /home/maxim/.emacs.d/recentf Error: server did not start correctly Service emacs could not be started. gpg-agent: a gpg-agent is already running - not starting a new one Service gpg-agent could not be started. Service ibus-daemon has been started. shepherd: while opening socket '/run/user/1000/shepherd/socket': bind: Address already in use Exiting shepherd... Service ibus-daemon has been stopped. Some deprecated features have been used. Set the environment variable GUILE_WARN_DEPRECATED to "detailed" and rerun the program to get more information. Set it to "no" to suppress this message. --8<---------------cut here---------------end--------------->8--- It apparently is caused by Emacs failing to start, because if I comment it out from the init.scm file, then the same Shepherd invocation is happy: --8<---------------cut here---------------start------------->8--- ;; Services to start when shepherd starts: (for-each start '(;emacs gpg-agent ibus-daemon)) --8<---------------cut here---------------end--------------->8--- --8<---------------cut here---------------start------------->8--- $ herd status Started: + ibus-daemon + root Stopped: - emacs - gpg-agent - jackd - workrave --8<---------------cut here---------------end--------------->8--- But that's with Shepherd 0.9.1. If I run the exact same config that now works, I see: --8<---------------cut here---------------start------------->8--- rm /run/user/1000/shepherd/socket $ /gnu/store/y826g8wrpzskcs82ffxppj7mmz257ksi-shepherd-0.10.1/bin/shepherd Starting service root... Service root started. Service root running with value #t. Service root has been started. WARNING: Use of `load' in declarative module (#{ g119}#). Add #:declarative? #f to your define-module invocation. Some deprecated features have been used. Set the environment variable GUILE_WARN_DEPRECATED to "detailed" and rerun the program to get more information. Set it to "no" to suppress this message. Starting service gpg-agent... $ herd status herd: error: /run/user/1000/shepherd/socket: No such file or directory $ file /run/user/1000/shepherd/socket /run/user/1000/shepherd/socket: cannot open `/run/user/1000/shepherd/socket' (No such file or directory) $ pgrep -a shepherd 1 /gnu/store/4gvgcfdiz67wv04ihqfa8pqwzsb0qpv5-guile-3.0.9/bin/guile --no-auto-compile /gnu/store/nl0948z46yndpx3kihhi540l5c422wv4-shepherd-0.10.0/bin/shepherd --config /gnu/store/7dxbjccbqamk4wa0nyf7zsc4ywimb1fh-shepherd.conf 24700 /gnu/store/4gvgcfdiz67wv04ihqfa8pqwzsb0qpv5-guile-3.0.9/bin/guile --no-auto-compile /gnu/store/y826g8wrpzskcs82ffxppj7mmz257ksi-shepherd-0.10.1/bin/shepherd --8<---------------cut here---------------end--------------->8--- It seems a bug exists in both 0.9.1 and 0.10.1, but that something also regressed going from 0.9.1 to 0.10.1. Attached are the two relevant Shepherd config files to test: