2010/9/6 Lennart Poettering <[email protected]>:
> On Fri, 03.09.10 16:44, Michael Biebl ([email protected]) wrote:
>> I thus created separate service files called
>> umountfs.service, umountnfs.service and umountroot.service.
>> I've installed them to /lib/systemd/system, and symlinked them to
>> /lib/systemd/system/umount.target.wants (I did not choose /etc for
>> that as I don't think this should be configurable).
>
> Sounds like a good approach.
>
>> If this is considered the correct approach to umount the file systems
>> (on Debian), I'll post a patch for that too.
>
> Please do!

Patch is attached.

Tollef, I'd be particularly interested in your feedback.

-- 
Why is it that all of the instruments seeking intelligent life in the
universe are pointed away from Earth?
From 83ad6f27105926591ed729b1460a4c046cc65579 Mon Sep 17 00:00:00 2001
From: Michael Biebl <[email protected]>
Date: Mon, 6 Sep 2010 05:44:00 +0200
Subject: [PATCH] units: add umount unit files for Debian

Add unit files to call

/etc/init.d/umountnfs.sh stop (unmount network file systems)
/etc/init.d/umountfs stop     (unmount local file systems)
/etc/init.d/umountroot stop   (mount root file system read-only)

in the right order and hook them up in the umount.target so they are run
on shutdown and reboot.
---
 Makefile.am                     |   14 +++++++++++++-
 units/debian/umountfs.service   |   18 ++++++++++++++++++
 units/debian/umountnfs.service  |   18 ++++++++++++++++++
 units/debian/umountroot.service |   18 ++++++++++++++++++
 4 files changed, 67 insertions(+), 1 deletions(-)
 create mode 100644 units/debian/umountfs.service
 create mode 100644 units/debian/umountnfs.service
 create mode 100644 units/debian/umountroot.service

diff --git a/Makefile.am b/Makefile.am
index a665904..2bafe16 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -236,7 +236,10 @@ dist_systemunit_DATA += \
 	units/debian/killall.service \
 	units/debian/poweroff.service \
 	units/debian/reboot.service \
-	units/debian/fsck.target
+	units/debian/fsck.target \
+	units/debian/umountfs.service \
+	units/debian/umountnfs.service \
+	units/debian/umountroot.service
 endif
 
 if TARGET_SUSE
@@ -963,6 +966,15 @@ if TARGET_GENTOO
 		rm -f xdm.service && \
 		$(LN_S) $(systemunitdir)/xdm.service xdm.service )
 endif
+if TARGET_DEBIAN
+	$(MKDIR_P) -m 0755 \
+		$(DESTDIR)$(systemunitdir)/umount.target.wants
+	( cd $(DESTDIR)$(systemunitdir)/umount.target.wants && \
+		rm -f umountfs.service umountnfs.service umountroot.service && \
+		$(LN_S) ../umountfs.service umountfs.service && \
+		$(LN_S) ../umountnfs.service umountnfs.service && \
+		$(LN_S) ../umountroot.service umountroot.service )
+endif
 if !TARGET_SUSE
 if !TARGET_DEBIAN
 	( cd $(DESTDIR)$(systemunitdir) && \
diff --git a/units/debian/umountfs.service b/units/debian/umountfs.service
new file mode 100644
index 0000000..ab14c76
--- /dev/null
+++ b/units/debian/umountfs.service
@@ -0,0 +1,18 @@
+#  This file is part of systemd.
+#
+#  systemd is free software; you can redistribute it and/or modify it
+#  under the terms of the GNU General Public License as published by
+#  the Free Software Foundation; either version 2 of the License, or
+#  (at your option) any later version.
+
+[Unit]
+Description=Turn off swap and umount all local file systems
+DefaultDependencies=no
+After=killall.service
+Before=reboot.service poweroff.service halt.service umountroot.service
+
+[Service]
+Type=oneshot
+RemainAfterExit=yes
+ExecStart=/etc/init.d/umountfs stop
+StandardInput=tty
diff --git a/units/debian/umountnfs.service b/units/debian/umountnfs.service
new file mode 100644
index 0000000..f42b4a9
--- /dev/null
+++ b/units/debian/umountnfs.service
@@ -0,0 +1,18 @@
+#  This file is part of systemd.
+#
+#  systemd is free software; you can redistribute it and/or modify it
+#  under the terms of the GNU General Public License as published by
+#  the Free Software Foundation; either version 2 of the License, or
+#  (at your option) any later version.
+
+[Unit]
+Description=Umount all network file systems
+DefaultDependencies=no
+After=killall.service
+Before=reboot.service poweroff.service halt.service umountfs.service
+
+[Service]
+Type=oneshot
+RemainAfterExit=yes
+ExecStart=/etc/init.d/umountnfs.sh stop
+StandardInput=tty
diff --git a/units/debian/umountroot.service b/units/debian/umountroot.service
new file mode 100644
index 0000000..fcdbeec
--- /dev/null
+++ b/units/debian/umountroot.service
@@ -0,0 +1,18 @@
+#  This file is part of systemd.
+#
+#  systemd is free software; you can redistribute it and/or modify it
+#  under the terms of the GNU General Public License as published by
+#  the Free Software Foundation; either version 2 of the License, or
+#  (at your option) any later version.
+
+[Unit]
+Description=Mount the root file system read-only
+DefaultDependencies=no
+After=killall.service
+Before=reboot.service poweroff.service halt.service
+
+[Service]
+Type=oneshot
+RemainAfterExit=yes
+ExecStart=/etc/init.d/umountroot stop
+StandardInput=tty
-- 
1.7.1

_______________________________________________
systemd-devel mailing list
[email protected]
http://lists.freedesktop.org/mailman/listinfo/systemd-devel

Reply via email to