-
Bug
-
Resolution: Unresolved
-
Major
-
None
-
rhel-8.5.0
-
None
-
Important
-
rhel-sst-cs-plumbers
-
ssg_core_services
-
3
-
False
-
-
None
-
None
-
None
-
None
-
If docs needed, set a value
-
-
All
-
None
Description of problem:
When having users with home dire on NFS and enabling lingering for such users, systemd fails to start the user@ service instance for the lingering user because the home dir is not present yet. This ends up not having the user services started.
IMHO user@.service should have the following property added, so that it gets delayed until home dir is available:
-------- 8< ---------------- 8< ---------------- 8< ---------------- 8< --------
RequiresMountsFor=%h
-------- 8< ---------------- 8< ---------------- 8< ---------------- 8< --------
Unfortunately due to BZ #2056527 "%h" cannot be used for now.
Version-Release number of selected component (if applicable):
systemd-239
How reproducible:
Always
Steps to Reproduce:
1. Create a user with home dir on NFS
2. Enable lingering for that user
3. Create a user service (/home/rmetrich/.config/systemd/user/test.service) and enable it
-------- 8< ---------------- 8< ---------------- 8< ---------------- 8< --------
[Service]
ExecStart=/bin/sleep 3600
[Install]
WantedBy=default.target
-------- 8< ---------------- 8< ---------------- 8< ---------------- 8< --------
4. Reboot
Actual results:
"systemd --user" loads but "test.service" unit is not known / didn't execute because "systemd --user" instance has a "null" configuration:
-------- 8< ---------------- 8< ---------------- 8< ---------------- 8< --------
$ systemctl --user status test
Unit test.service could not be found.
-------- 8< ---------------- 8< ---------------- 8< ---------------- 8< --------
Expected results:
"test.service" executes.
Additional info:
With the added dependency on home dir (hardcoded because "%h" fails), this works fine:
-------- 8< ---------------- 8< ---------------- 8< ---------------- 8< --------
- systemctl cat user@$(id -u rmetrich)
[...] - /etc/systemd/system/user@.service.d/home.conf
[Unit]
RequiresMountsFor=/home/rmetrich
$ systemctl --user status test
● test.service
Loaded: loaded (/home/rmetrich/.config/systemd/user/test.service; enabled; vendor preset: enabled)
Active: active (running) since Mon 2022-02-21 14:24:54 CET; 24s ago
Main PID: 1265 (sleep)
CGroup: /user.slice/user-101166.slice/user@101166.service/test.service
└─1265 /bin/sleep 3600
-------- 8< ---------------- 8< ---------------- 8< ---------------- 8< --------