From 6a140df0048c99e62339d97effbe16a1bba42d45 Mon Sep 17 00:00:00 2001 From: Lennart Poettering Date: Mon, 29 Dec 2014 12:38:26 +0100 Subject: [PATCH] units: rework systemd-nspawn@.service unit - Unescape instance name so that we can take almost anything as instance name. - Introduce "machines.target" which consists of all enabled nspawns and can be used to start/stop them altogether - Look for container directory using -M instead of harcoding the path in /var/lib/container --- Makefile.am | 1 + units/machines.target | 17 +++++++++++++++++ units/systemd-nspawn@.service.in | 8 +++++--- 3 files changed, 23 insertions(+), 3 deletions(-) create mode 100644 units/machines.target diff --git a/Makefile.am b/Makefile.am index e1e084308..28d2e4b53 100644 --- a/Makefile.am +++ b/Makefile.am @@ -549,6 +549,7 @@ nodist_systemunit_DATA = \ units/initrd-udevadm-cleanup-db.service \ units/initrd-switch-root.service \ units/systemd-nspawn@.service \ + units/machines.target \ units/systemd-update-done.service if HAVE_UTMP diff --git a/units/machines.target b/units/machines.target new file mode 100644 index 000000000..99618a19f --- /dev/null +++ b/units/machines.target @@ -0,0 +1,17 @@ +# 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=Containers +Documentation=man:systemd.special(7) +Requires=basic.target +Conflicts=rescue.service rescue.target +After=basic.target rescue.service rescue.target +Before=multi-user.target + +[Install] +WantedBy=multi-user.target diff --git a/units/systemd-nspawn@.service.in b/units/systemd-nspawn@.service.in index e3eaa5323..02d663dd2 100644 --- a/units/systemd-nspawn@.service.in +++ b/units/systemd-nspawn@.service.in @@ -6,11 +6,13 @@ # (at your option) any later version. [Unit] -Description=Container %i +Description=Container %I Documentation=man:systemd-nspawn(1) +PartOf=machines.target +Before=machines.target [Service] -ExecStart=@bindir@/systemd-nspawn --quiet --keep-unit --boot --link-journal=try-guest --directory=/var/lib/container/%i +ExecStart=@bindir@/systemd-nspawn --quiet --keep-unit --boot --link-journal=try-guest --machine=%I KillMode=mixed Type=notify RestartForceExitStatus=133 @@ -18,4 +20,4 @@ SuccessExitStatus=133 Delegate=yes [Install] -WantedBy=multi-user.target +WantedBy=machines.target -- 2.30.2