[lxc-devel] [PATCH 3/6] Add systemd unit for lxc.net

Martin Pitt martin.pitt at ubuntu.com
Thu Jul 31 06:53:53 UTC 2014


This is the equivalent of the upstart lxc-net.conf to set up the LXC bridge.

This also drops "lxc.service" from tarballs. It is built source which depends
on configure options, so the statically shipped file will not work on most
systems.

https://launchpad.net/bugs/1312532
---
 .gitignore                             |  1 +
 config/init/systemd/Makefile.am        | 11 +++++++----
 config/init/systemd/lxc-net.service.in | 10 ++++++++++
 config/init/systemd/lxc.service.in     |  1 +
 configure.ac                           |  1 +
 5 files changed, 20 insertions(+), 4 deletions(-)
 create mode 100644 config/init/systemd/lxc-net.service.in

diff --git a/.gitignore b/.gitignore
index 26011e4..e6de18f 100644
--- a/.gitignore
+++ b/.gitignore
@@ -114,6 +114,7 @@ config/lt*.m4
 config/bash/lxc
 config/init/systemd/lxc-autostart-helper
 config/init/systemd/lxc.service
+config/init/systemd/lxc-net.service
 config/init/sysvinit/lxc
 
 doc/*.1
diff --git a/config/init/systemd/Makefile.am b/config/init/systemd/Makefile.am
index 3bd221f..ed1e4ef 100644
--- a/config/init/systemd/Makefile.am
+++ b/config/init/systemd/Makefile.am
@@ -1,6 +1,8 @@
 EXTRA_DIST = \
 	lxc-devsetup \
-	lxc.service
+	lxc.service.in \
+	lxc-net.service.in \
+	$(NULL)
 
 if INIT_SCRIPT_SYSTEMD
 lxc-autostart-helper: ../sysvinit/lxc.in $(top_builddir)/config.status
@@ -11,14 +13,15 @@ lxc-autostart-helper: ../sysvinit/lxc.in $(top_builddir)/config.status
 	    < $< > $@-t &&                                      \
 	    chmod a+x $@-t &&                                   \
 	    mv $@-t $@
-BUILT_SOURCES = lxc-autostart-helper
+BUILT_SOURCES = lxc-autostart-helper lxc.service lxc-net.service
 
-install-systemd: lxc.service lxc-devsetup lxc-autostart-helper
+install-systemd: lxc.service lxc-net.service lxc-devsetup lxc-autostart-helper
 	$(MKDIR_P) $(DESTDIR)$(SYSTEMD_UNIT_DIR)
-	$(INSTALL_DATA) lxc.service $(DESTDIR)$(SYSTEMD_UNIT_DIR)/
+	$(INSTALL_DATA) lxc.service lxc-net.service $(DESTDIR)$(SYSTEMD_UNIT_DIR)/
 
 uninstall-systemd:
 	rm -f $(DESTDIR)$(SYSTEMD_UNIT_DIR)/lxc.service
+	rm -f $(DESTDIR)$(SYSTEMD_UNIT_DIR)/lxc-net.service
 	rmdir $(DESTDIR)$(SYSTEMD_UNIT_DIR) || :
 
 pkglibexec_SCRIPTS = lxc-devsetup lxc-autostart-helper
diff --git a/config/init/systemd/lxc-net.service.in b/config/init/systemd/lxc-net.service.in
new file mode 100644
index 0000000..37d1d69
--- /dev/null
+++ b/config/init/systemd/lxc-net.service.in
@@ -0,0 +1,10 @@
+[Unit]
+Description=LXC network bridge setup
+After=network.target
+Before=lxc.service
+
+[Service]
+Type=oneshot
+RemainAfterExit=yes
+ExecStart=@DATADIR@/lxc/lxc.net start
+ExecStop=@DATADIR@/lxc/lxc.net stop
diff --git a/config/init/systemd/lxc.service.in b/config/init/systemd/lxc.service.in
index 0a428a3..c7f2813 100644
--- a/config/init/systemd/lxc.service.in
+++ b/config/init/systemd/lxc.service.in
@@ -1,6 +1,7 @@
 [Unit]
 Description=LXC Container Initialization and Autoboot Code
 After=syslog.target network.target
+Wants=lxc-net.service
 
 [Service]
 Type=oneshot
diff --git a/configure.ac b/configure.ac
index ded4c48..c0d7015 100644
--- a/configure.ac
+++ b/configure.ac
@@ -613,6 +613,7 @@ AC_CONFIG_FILES([
 	config/init/sysvinit/lxc
 	config/init/systemd/Makefile
 	config/init/systemd/lxc.service
+	config/init/systemd/lxc-net.service
 	config/init/upstart/Makefile
 	config/etc/Makefile
 	config/templates/Makefile
-- 
2.0.1



More information about the lxc-devel mailing list