summaryrefslogtreecommitdiff
path: root/units
diff options
context:
space:
mode:
Diffstat (limited to 'units')
-rw-r--r--units/.gitignore1
-rw-r--r--units/initrd-switch-root.service.in3
-rw-r--r--units/systemd-volatile-root.service.in21
3 files changed, 23 insertions, 2 deletions
diff --git a/units/.gitignore b/units/.gitignore
index 8fdb6e9ab5..4398a59f91 100644
--- a/units/.gitignore
+++ b/units/.gitignore
@@ -75,5 +75,6 @@
/systemd-update-utmp.service
/systemd-user-sessions.service
/systemd-vconsole-setup.service
+/systemd-volatile-root.service
/tmp.mount
/user@.service
diff --git a/units/initrd-switch-root.service.in b/units/initrd-switch-root.service.in
index 82893dafb1..219748d19b 100644
--- a/units/initrd-switch-root.service.in
+++ b/units/initrd-switch-root.service.in
@@ -15,6 +15,5 @@ AllowIsolate=yes
[Service]
Type=oneshot
-# we have to use "--force" here, otherwise systemd would umount /run
-ExecStart=@rootbindir@/systemctl --no-block --force switch-root /sysroot
+ExecStart=@rootbindir@/systemctl --no-block switch-root /sysroot
KillMode=none
diff --git a/units/systemd-volatile-root.service.in b/units/systemd-volatile-root.service.in
new file mode 100644
index 0000000000..cc4e604e4c
--- /dev/null
+++ b/units/systemd-volatile-root.service.in
@@ -0,0 +1,21 @@
+# This file is part of systemd.
+#
+# systemd is free software; you can redistribute it and/or modify it
+# under the terms of the GNU Lesser General Public License as published by
+# the Free Software Foundation; either version 2.1 of the License, or
+# (at your option) any later version.
+
+[Unit]
+Description=Enforce Volatile Root File Systems
+Documentation=man:systemd-volatile-root.service(8)
+DefaultDependencies=no
+Conflicts=shutdown.target
+After=sysroot.mount
+Before=initrd-root-fs.target shutdown.target
+Conflicts=shutdown.target
+AssertPathExists=/etc/initrd-release
+
+[Service]
+Type=oneshot
+RemainAfterExit=yes
+ExecStart=@rootlibexecdir@/systemd-volatile-root yes /sysroot