[lxc-devel] [PATCH 2/2] Support files for systemd on Fedora.

Serge Hallyn serge.hallyn at ubuntu.com
Tue Nov 19 20:57:24 UTC 2013


Quoting Michael H. Warfield (mhw at WittsEnd.com):
> Added a file "lxc.service" for a systemd service file.
> 
> Added a file "lxc-devsetup" to setup /dev/ on startup to support autodev
> in containers.
> 
> Service file references lxc-devsetup as an ExecStartPre command.  The
> lxc-devsetup script is not dependent on systemd or Fedora and can
> be used at bootup on any system.
> 
> Modified lxc.spec.in to install the two new files on Fedora.  The systemd
> specific code in the lxc.spec file may need some review and conditionalize
> for systemd on non-systemd rpm-based systems.

I'm fine with the idea, but will leave it to Stéphane to say whether
this interferes with his autostart work.  If it does, then the autostart
work should do this.  If not, then we can push this (along with an
equivalent upstart and perhaps sysvinit job)

> ---
>  lxc.spec.in          |  8 ++++++++
>  src/lxc/lxc-devsetup | 26 ++++++++++++++++++++++++++
>  src/lxc/lxc.service  | 18 ++++++++++++++++++
>  3 files changed, 52 insertions(+)
>  create mode 100755 src/lxc/lxc-devsetup
>  create mode 100644 src/lxc/lxc.service
> 
> diff --git a/lxc.spec.in b/lxc.spec.in
> index a6c96a2..3ef5881 100644
> --- a/lxc.spec.in
> +++ b/lxc.spec.in
> @@ -102,6 +102,11 @@ rm -rf %{buildroot}
>  make install DESTDIR=%{buildroot}
>  find %{buildroot} -type f -name '*.la' -exec rm -f {} ';'
>  
> +# Install some of our systemd stuff...
> +install -d -m 755 %{buildroot}/lib/systemd/system
> +install -c -m 644 src/lxc/lxc.service %{buildroot}/lib/systemd/system
> +install -c -m 755 src/lxc/lxc-devsetup %{buildroot}/%{_libexecdir}/%{name}
> +
>  %clean
>  rm -rf %{buildroot}
>  
> @@ -131,6 +136,8 @@ rm -rf %{buildroot}
>  %{_datadir}/lxc/*
>  %config(noreplace) %{_sysconfdir}/lxc/*
>  
> +/lib/systemd/system/*
> +
>  %files libs
>  %defattr(-,root,root)
>  %{_libdir}/*.so.*
> @@ -140,6 +147,7 @@ rm -rf %{buildroot}
>  %endif
>  %{_localstatedir}/*
>  %attr(4555,root,root) %{_libexecdir}/%{name}/lxc-init
> +%attr(555,root,root) %{_libexecdir}/%{name}/lxc-devsetup
>  
>  %if %{with_lua}
>  %files lua
> diff --git a/src/lxc/lxc-devsetup b/src/lxc/lxc-devsetup
> new file mode 100755
> index 0000000..583a001
> --- /dev/null
> +++ b/src/lxc/lxc-devsetup
> @@ -0,0 +1,26 @@
> +#!/bin/sh -
> +
> +# lxc.devsetup - Setup host /dev for container /dev subdirectories.
> +
> +if [[ ! -d /dev/.lxc ]]
> +then
> +    echo "Creating /dev/.lxc"
> +    mkdir /dev/.lxc
> +    chmod 755 /dev/.lxc
> +fi
> +
> +if grep -q "/dev devtmpfs " /proc/self/mounts
> +then
> +    echo "/dev is devtmpfs"
> +else
> +    echo "/dev is not devtmpfs - mounting tmpfs on .lxc"
> +    mount -t tmpfs tmpfs /dev/.lxc
> +fi
> +
> +if [[ ! -d /dev/.lxc/user ]]
> +then
> +    echo "Creating /dev/.lxc/user"
> +    mkdir /dev/.lxc/user
> +    chmod 1777 /dev/.lxc/user
> +fi
> +
> diff --git a/src/lxc/lxc.service b/src/lxc/lxc.service
> new file mode 100644
> index 0000000..d3d3238
> --- /dev/null
> +++ b/src/lxc/lxc.service
> @@ -0,0 +1,18 @@
> +[Unit]
> +Description=LXC Container Initialization and Autoboot Code
> +After=syslog.target
> +
> +[Service]
> +Type=oneshot
> +RemainAfterExit=yes
> +ExecStartPre=/usr/libexec/lxc/lxc-devsetup
> +ExecStart=/usr/libexec/lxc/lxc-startup start
> +ExecStop=/usr/libexec/lxc/lxc-startup stop
> +# Environment=BOOTUP=serial
> +# Environment=CONSOLETYPE=serial
> +StandardOutput=syslog
> +StandardError=syslog
> +
> +[Install]
> +WantedBy=multi-user.target
> +
> -- 
> 1.8.3.1
> 
> 
> -- 
> Michael H. Warfield (AI4NB) | (770) 978-7061 |  mhw at WittsEnd.com
>    /\/\|=mhw=|\/\/          | (678) 463-0932 |  http://www.wittsend.com/mhw/
>    NIC whois: MHW9          | An optimist believes we live in the best of all
>  PGP Key: 0x674627FF        | possible worlds.  A pessimist is sure of it!
> 



> ------------------------------------------------------------------------------
> November Webinars for C, C++, Fortran Developers
> Accelerate application performance with scalable programming models. Explore
> techniques for threading, error checking, porting, and tuning. Get the most 
> from the latest Intel processors and coprocessors. See abstracts and register
> http://pubads.g.doubleclick.net/gampad/clk?id=60136231&iu=/4140/ostg.clktrk

> _______________________________________________
> Lxc-devel mailing list
> Lxc-devel at lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/lxc-devel





More information about the lxc-devel mailing list