On 02/09/2015 02:06 AM, Roman Haefeli wrote:
Hi all

I'm doing some testing with Debian Jessie (8.0) Containers. Debian
Jessie comes with systemd as its default init system. I wonder what is
the correct way to tell vzctl when a container is done starting up. What
was a simple line in /etc/inittab for sysv-init, seems more complex in
systemd. Creating a systemd service unit that touches /.vzfifo is
actually not that difficult. However, I have troubles figuring out how
to make sure vz-init-done.service is started after all other services
have been started.

Has anyone experience with systemd-enabled OpenVZ containers? Are you
using --wait at all?

This is already implemented in official Debian 8 template. This is how it's done
(assuming you are in CT root directory):

# Create vzfifo service
cat >> lib/systemd/system/vzfifo.service << EOF
#  This file is part of systemd.
#
#  systemd is free software; you can redistribute it and/or modify it
#  under the terms of the GNU General Public License as published by
#  the Free Software Foundation; either version 2 of the License, or
#  (at your option) any later version.

[Unit]
Description=Tell that Container is started
ConditionPathExists=/proc/vz
ConditionPathExists=!/proc/bc
After=multi-user.target quotaon.service quotacheck.service

[Service]
Type=forking
ExecStart=/bin/touch /.vzfifo
TimeoutSec=0
RemainAfterExit=no
SysVStartPriority=99

[Install]
WantedBy=multi-user.target
EOF

# Enable services
for service in vzfifo; do
        systemctl enable $service > /dev/null 2>&1
done

Also you probably want to set multi-user as a default systemd target
(if it is not set that way already):

# Set default target as multi-user target
rm -f lib/systemd/system/default.target
ln -s multi-user.target lib/systemd/system/default.target
mkdir -p etc/systemd/system/default.target.wants

_______________________________________________
Users mailing list
Users@openvz.org
https://lists.openvz.org/mailman/listinfo/users

Reply via email to