Previously when I have been debugging systemd services I have used: systemctl status --failed to get me all of the failed services
However that, as in my case today, did not return any failures, yet I knew a service was not working.
It turned out the service was not working as it had a bad setting:
❯ systemctl status home-manager-james.service
○ home-manager-james.service
Loaded: bad-setting (Reason: Unit home-manager-james.service has a bad unit file setting.)
Active: inactive (dead)
dec 09 13:53:44 darter hm-activate-james[1569]: Creating home file links in /home/james
dec 09 13:53:44 darter hm-activate-james[1569]: Activating onFilesChange
dec 09 13:53:44 darter hm-activate-james[1569]: Activating reloadSystemd
dec 09 13:53:44 darter systemd[1]: User systemd daemon not running. Skipping reload.
dec 09 13:53:44 darter systemd[1]: home-manager-james.service: Deactivated successfully.
dec 09 13:53:44 darter systemd[1]: Finished Home Manager environment for james.
dec 09 13:53:44 darter systemd[1]: home-manager-james.service: Consumed 804ms CPU time, 66.9M memory peak, 112.7M read from disk.
dec 09 13:56:16 darter systemd[1]: home-manager-james.service: Service has no ExecStart=, ExecStop=, or SuccessAction=. Refusing.
dec 09 14:01:26 darter systemd[1]: home-manager-james.service: Service has no ExecStart=, ExecStop=, or SuccessAction=. Refusing.
dec 09 14:02:36 darter systemd[1]: home-manager-james.service: Service has no ExecStart=, ExecStop=, or SuccessAction=. Refusing.
I am still not sure how to identify these services without directly checking their status, like I did above.