Sam James <[email protected]> writes: > As I remarked on the forums [0], the rollout has been pretty smooth, but > unfortunately a few issues with user configurations have shown up after > an extended period in ~arch (and deployment by other distributions). Explain > to users what is new, how to disable the new thing, and the common problem > we've seen with bad ~/.profile files. > > [0] https://forums.gentoo.org/viewtopic-p-8869409.html#8869409 > > Bug: https://bugs.gentoo.org/952108 > Bug: https://bugs.gentoo.org/961693 > Bug: https://bugs.gentoo.org/962109 > Bug: https://bugs.gentoo.org/962214 > Signed-off-by: Sam James <[email protected]> > --- > v2: drop use of ` and ```, use -t test instead of the external tty command, > fix version reference. > > I'd like to push this shortly.
Pushed. > > .../2025-09-04-openrc-user-services.txt | 84 +++++++++++++++++++ > 1 file changed, 84 insertions(+) > create mode 100644 > 2025-09-04-openrc-user-services/2025-09-04-openrc-user-services.txt > > diff --git > a/2025-09-04-openrc-user-services/2025-09-04-openrc-user-services.txt > b/2025-09-04-openrc-user-services/2025-09-04-openrc-user-services.txt > new file mode 100644 > index 0000000..5a391d7 > --- /dev/null > +++ b/2025-09-04-openrc-user-services/2025-09-04-openrc-user-services.txt > @@ -0,0 +1,84 @@ > +Title: sys-apps/openrc user services introduction > +Author: Sam James <[email protected]> > +Posted: 2025-09-04 > +Revision: 1 > +News-Item-Format: 2.0 > +Display-If-Installed: sys-apps/openrc > + > +OpenRC 0.62 (*) introduces user services as a new feature. The functionality > +is documented on the wiki [0] and has a similar interface to conventional > +system-wide services. > + > +Support for user services is enabled by default via the pam_openrc module > +in sys-auth/pambase, but it can be disabled via an OpenRC configuration > +option as described below. > + > +Some ebuilds already provide OpenRC user service init scripts, like > +app-editors/emacs. More will follow, but use of user services is optional. > + > +Requirements > +============ > + > +User services currently require the XDG_RUNTIME_DIR environment variable to > +be set, which may be done via sys-auth/elogind, sys-apps/systemd, or manually > +via e.g. pam_env. In the future, pam_xdg may be packaged [1] as another > option. > + > +If the XDG_RUNTIME_DIR environment variable isn't set and user services have > +not been disabled, the setup will fail gracefully but will appear in syslog > +and rc-update. > + > +Opting-out of user services > +=========================== > + > +If users wish to disable OpenRC user services, they can set > +rc_autostart_user="NO" in /etc/rc.conf: > + > + ... > + # Set to "NO" if you don't want pam_openrc autostarting user services. This > + # effectively disables the pam module, without the need of removing it from > + # the pam configuration files. > + rc_autostart_user="NO" > + ... > + > +~/.profile and friends > +====================== > + > +After stabilization, some users reported hangs when logging in [2]. None > +were reported during the extensive period of testing in ~arch or by other > +distributions who deployed newer versions of OpenRC. User services require > +that ~/.profile, ~/.bash_profile run safely under a non-interactive > +shell. > + > +Commands in these shell startup files may be executed by a non-interactive > +shell so commands that require a TTY, reading from stdin, and so on should > +be guarded with a check for TTY like: > + > + if [ -t 0 ] ; then > + # Interactive commands here > + ... > + fi > + > +Please make sure to check your shell startup files for suspicious constructs > +like the following: > + > + ... > + if [ -x /usr/bin/keychain ] ; then # BAD > + keychain ... > + fi > + ... > + > +... replacing them with: > + > + ... > + if [ -t 0 ] && [ -x /usr/bin/keychain ] ; then # GOOD > + keychain ... > + fi > + ... > + > +(*) User services were originally in sys-apps/openrc-navi and later as > + part of >= OpenRC 0.62. The functionality was declared stable with 0.62.6 > + which was the first version with User Services stabled in Gentoo. > + > +[0] https://wiki.gentoo.org/wiki/OpenRC#User_services > +[1] https://bugs.gentoo.org/908431 > +[2] https://bugs.gentoo.org/962214 > > Range-diff against v1: > 1: 8ff7265 < -: ------- 2025-09-02-openrc-user-services: new news item > 2: dc74a8b = 1: dc74a8b 2025-09-04-openrc-user-services: new news item
