From ea1a15b35b70573ab61ca0b8123205c6885c69e4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= Date: Tue, 5 Sep 2017 10:15:13 +0200 Subject: [PATCH] units: add remote-cryptsetup.target and remote-cryptsetup-pre.target The pair is similar to remote-fs.target and remote-fs-pre.target. Any cryptsetup devices which require network shall be ordered after remote-cryptsetup-pre.target and before remote-cryptsetup.target. Cherry-picked from: 889128b8b27abb13e1691a72e4ce0562c564e257 Resolves: #1384014 --- Makefile.am | 4 +++- man/systemd.special.xml | 23 +++++++++++++++++++++++ units/cryptsetup-pre.target | 2 +- units/cryptsetup.target | 2 +- units/remote-cryptsetup-pre.target | 15 +++++++++++++++ units/remote-cryptsetup.target | 10 ++++++++++ 6 files changed, 53 insertions(+), 3 deletions(-) create mode 100644 units/remote-cryptsetup-pre.target create mode 100644 units/remote-cryptsetup.target diff --git a/Makefile.am b/Makefile.am index 0e2f8d561..a1ebf5cb0 100644 --- a/Makefile.am +++ b/Makefile.am @@ -4861,7 +4861,9 @@ systemgenerator_PROGRAMS += \ dist_systemunit_DATA += \ units/cryptsetup.target \ - units/cryptsetup-pre.target + units/cryptsetup-pre.target \ + units/remote-cryptsetup.target \ + units/remote-cryptsetup-pre.target systemd_cryptsetup_SOURCES = \ src/cryptsetup/cryptsetup.c diff --git a/man/systemd.special.xml b/man/systemd.special.xml index eb464f9f8..5529d3bf7 100644 --- a/man/systemd.special.xml +++ b/man/systemd.special.xml @@ -81,6 +81,8 @@ poweroff.target, printer.target, reboot.target, + remote-cryptsetup-pre.target, + remote-cryptsetup.target, remote-fs.target, remote-fs-pre.target, rescue.target, @@ -404,6 +406,27 @@ this target unit, for compatibility with SysV. + + remote-cryptsetup-pre.target + + This target unit is automatically ordered before all cryptsetup devices + marked with the . It can be used to execute additional + units before such devices are set up. + + It is ordered after network.target and + network-online.target, and also pulls the latter in as a + Wants= dependency. + + + + remote-cryptsetup.target + + Similar to cryptsetup.target, but for encrypted + devices which are accessed over the network. It is used for + crypttab8 + entries marked with . + + remote-fs.target diff --git a/units/cryptsetup-pre.target b/units/cryptsetup-pre.target index 42e35dd4e..6cb28a61a 100644 --- a/units/cryptsetup-pre.target +++ b/units/cryptsetup-pre.target @@ -6,7 +6,7 @@ # (at your option) any later version. [Unit] -Description=Encrypted Volumes (Pre) +Description=Local Encrypted Volumes (Pre) Documentation=man:systemd.special(7) RefuseManualStart=yes Before=cryptsetup.target diff --git a/units/cryptsetup.target b/units/cryptsetup.target index 25d3e33f6..10b17fd38 100644 --- a/units/cryptsetup.target +++ b/units/cryptsetup.target @@ -6,5 +6,5 @@ # (at your option) any later version. [Unit] -Description=Encrypted Volumes +Description=Local Encrypted Volumes Documentation=man:systemd.special(7) diff --git a/units/remote-cryptsetup-pre.target b/units/remote-cryptsetup-pre.target new file mode 100644 index 000000000..a375e6188 --- /dev/null +++ b/units/remote-cryptsetup-pre.target @@ -0,0 +1,15 @@ +# 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=Remote Encrypted Volumes (Pre) +Documentation=man:systemd.special(7) +RefuseManualStart=yes +Before=remote-cryptsetup.target + +After=network.target network-online.target +Wants=network-online.target diff --git a/units/remote-cryptsetup.target b/units/remote-cryptsetup.target new file mode 100644 index 000000000..60943bd1c --- /dev/null +++ b/units/remote-cryptsetup.target @@ -0,0 +1,10 @@ +# 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=Remote Encrypted Volumes +Documentation=man:systemd.special(7)