Hello, On Mon Oct 17, 2022 at 8:50 PM MSK, Ihor Antonov wrote: > Kicking off another thread because it is slightly different from UX > related questions. > > I am trying to get s6-rc set up as a user service manager (similar how > systemd allows user's to manage their own services with systemctl --user > start bla). > This is useful for example for starting user's dbus, pipewire, > xdg-desktop-portal services, and other stuff that is strictly user > related. > > This usecase is geared towards a desktop/laptop.
(There were numerous rants of user services by Laurent Bercot and Colin Booth on IRC, and I'm going to use those rants as a source). Firstly, let's try to define "user services" without "bla". There are three very different options: 1) User services are services running as a given user and started at a boot time This option is a trivial one with s6. 2) User services are services defined by users and running supervised when the user wants it. You can implement this with s6-usertree-maker [1], which would provide you with a supervision tree rooted in a system one which can be managed by user. User will have its own scandir and they can use all commands provided by s6/s6-rc on their scandir. 3) User services are services that are started when user logs in. I guess this is what you had in mind when you was typing your letter. This is the hardest one and badly defined one. There are a lot of questions: - What does "user logs in" mean? Do we want services to be started when user logs in on the console or at seat? Sshd? Serial line? - When do we stop services? "When the user logs out"? And if the user has both an X session and a shell in a console? We need to wait for the last connection to drop? How would we get this information? One needs some time to shut down the supervision tree. One can remember how did systemd killed all user processes on the logout. - Moreover, some services (pipewire, for example) are supposed to be run in certain cases, e.g. a graphical session. - There may be a lot of questions I don't know about. > - Minor: a test utility for svscan dir would be nice > - Minor: a test utility for live dir would be nice If you use s6-rc, those are the same directories, filled by s6-rc-init and changed by s6-rc-update. So the test would actually test those utilities, I guess. [1] https://skarnet.org/software/s6/s6-usertree-maker.html --- Best regards, Peter
