diff options
author | Thomas Bächler <thomas@archlinux.org> | 2013-11-19 23:10:28 +0100 |
---|---|---|
committer | Dave Reisner <dreisner@archlinux.org> | 2013-11-24 02:57:13 +0100 |
commit | 2fa0eb25d47c920c18e7d2498c647a801d836596 (patch) | |
tree | 13b6adfc9d791e25fb9d6b1b5cae1dc7150de011 | |
parent | 88129397a4f4c714195d2a100b851ecf7d0b0e85 (diff) | |
download | mkinitcpio-2fa0eb25d47c920c18e7d2498c647a801d836596.tar.gz mkinitcpio-2fa0eb25d47c920c18e7d2498c647a801d836596.tar.xz |
Add mkinitcpio-generate-shutdown-ramfs.service
When enabled, this service generates an "initramfs" that systemd
pivots to on shutdown to ensure clean umounting and shutdown of
loop and dm devices.
The actual work is done by systemd-shutdown.
-rw-r--r-- | Makefile | 4 | ||||
-rw-r--r-- | install/sd-shutdown | 14 | ||||
-rw-r--r-- | mkinitcpio-generate-shutdown-ramfs.service | 15 |
3 files changed, 32 insertions, 1 deletions
@@ -14,7 +14,8 @@ DIRS = \ /usr/share/man/man8 \ /usr/share/man/man5 \ /usr/share/man/man1 \ - /usr/share/mkinitcpio + /usr/share/mkinitcpio \ + /usr/lib/systemd/system all: doc @@ -48,6 +49,7 @@ install: all cp -at $(DESTDIR)/usr/lib/initcpio hooks install install -m644 -t $(DESTDIR)/usr/share/mkinitcpio mkinitcpio.d/* + install -m644 mkinitcpio-generate-shutdown-ramfs.service $(DESTDIR)/usr/lib/systemd/system/mkinitcpio-generate-shutdown-ramfs.service install -m755 50-mkinitcpio.install $(DESTDIR)/usr/lib/kernel/install.d/50-mkinitcpio.install diff --git a/install/sd-shutdown b/install/sd-shutdown new file mode 100644 index 0000000..7e86dad --- /dev/null +++ b/install/sd-shutdown @@ -0,0 +1,14 @@ +#!/bin/bash + +build() { + add_binary /usr/lib/systemd/systemd-shutdown /shutdown +} + +help() { + cat <<HELPEOF +This hook adds systemd-shutdown to the initramfs. This is only +if the image is extracted to /run/initramfs before shutdown. +HELPEOF +} + +# vim: set ft=sh ts=4 sw=4 et: diff --git a/mkinitcpio-generate-shutdown-ramfs.service b/mkinitcpio-generate-shutdown-ramfs.service new file mode 100644 index 0000000..36c2508 --- /dev/null +++ b/mkinitcpio-generate-shutdown-ramfs.service @@ -0,0 +1,15 @@ +[Unit] +Description=Generate shutdown-ramfs +DefaultDependencies=no +Before=shutdown.target +ConditionFileIsExecutable=!/run/initramfs/shutdown + +[Service] +Type=oneshot +# /tmp could be umounted at this point +# use /run as temporary directory +Environment=TMPDIR=/run +ExecStart=/usr/bin/mkinitcpio -A sd-shutdown -c /dev/null -d /run/initramfs + +[Install] +WantedBy=shutdown.target |