core/service: preserve RuntimeDirectory= even if oneshot service exits

Follow-up for c26948c6da

We only want to get rid of cred mount here, and RuntimeDirectory=
is documented to be retained for SERVICE_EXITED state.

Fixes #35427
This commit is contained in:
Mike Yuan
2024-12-02 10:57:45 +01:00
committed by Zbigniew Jędrzejewski-Szmek
parent d5df77b474
commit 703b1b7f24
7 changed files with 23 additions and 10 deletions
@@ -5,8 +5,6 @@
set -eux
set -o pipefail
# Test RuntimeDirectoryPreserve=yes
at_exit() {
set +e
@@ -15,6 +13,21 @@ at_exit() {
trap at_exit EXIT
# RuntimeDirectory= should be preserved for oneshot units if RemainAfterExit=yes
systemd-run --service-type=oneshot --remain-after-exit \
-u TEST-23-remain-after-exit.service \
-p RuntimeDirectory=TEST-23-remain-after-exit \
true
[[ -d /run/TEST-23-remain-after-exit ]]
systemctl stop TEST-23-remain-after-exit.service
[[ ! -e /run/TEST-23-remain-after-exit ]]
# Test RuntimeDirectoryPreserve=yes
systemd-mount -p RuntimeDirectory=hoge -p RuntimeDirectoryPreserve=yes -t tmpfs tmpfs /tmp/aaa
touch /run/hoge/foo