description "cgroup management daemon"
author "Serge Hallyn <serge.hallyn@ubuntu.com>"

respawn
expect stop

# in trusty /sys/fs/cgroup will be mounted for us.
# prior to saucy, we would need to start on mounted
# MOUNTPOINT=/sys, and mount /sys/fs/cgroup ourselves
start on mounted MOUNTPOINT=/sys/fs/cgroup or virtual-filesystems or starting dbus
stop on runlevel [06]

# to get debug output into /var/log/upstart/cgmanager.log, create/edit
# /etc/default/cgmanager and set cgmanager_opts="--debug"
env cgmanager_opts=""

# unbound subsystems cgmanager should mount.  If you need to add more,
# make the list comma-separated, for instance:
# env cgm_extra_mounts="-m name=systemd,name=yyy"
env cgm_extra_mounts="-m name=systemd"

pre-start script
	# Kill any existing cgproxy. This is required to allow proper
	# respawning of cgmanager.
	stop cgproxy >/dev/null 2>&1 || true

	# check whether we should start a cgproxy or a cgmanager
	if cgproxy --check-master; then
		start cgproxy NESTED=yes || true && { stop; exit 0; }
	fi
end script

script
	[ -r /etc/default/cgmanager ] && . /etc/default/cgmanager

	exec /sbin/cgmanager --sigstop $cgmanager_opts $cgm_extra_mounts
end script

post-start script
	initctl notify-cgroup-manager-address "unix:path=/sys/fs/cgroup/cgmanager/sock" || true
end script
