#!/bin/sh set -e ### BEGIN INIT INFO # Provides: cgroupfs-mount # Required-Start: $syslog $remote_fs # Required-Stop: $syslog $remote_fs # Default-Start: 2 3 4 5 # Default-Stop: 0 1 6 # Short-Description: Set up cgroupfs mounts. # Description: # Control groups are a kernel mechanism for tracking and imposing # limits on resource usage on groups of tasks. ### END INIT INFO BASE=cgroupfs-mount # Test for systemd and bail (we have to test before sourcing init-functions, or systemd hijacks us) # We bail because systemd already mounts cgroups sanely, so we just silently pretend we were successful in mounting them here if [ -d /run/systemd/system ]; then exit 0 fi # Get lsb functions . /lib/lsb/init-functions if [ -f /etc/default/$BASE ]; then . /etc/default/$BASE fi # see also init_is_upstart in /lib/lsb/init-functions (which isn't available in Ubuntu 12.04, or we'd use it) if [ -x /sbin/initctl ] && /sbin/initctl version 2>/dev/null | /bin/grep -q upstart; then log_failure_msg "$BASE is managed via upstart, try using service $BASE $1" exit 1 fi case "$1" in start) test -x /usr/bin/cgroupfs-mount || exit 0 log_begin_msg 'Mounting cgroupfs hierarchy' /usr/bin/cgroupfs-mount log_end_msg $? ;; stop) test -x /usr/bin/cgroupfs-umount || exit 0 log_begin_msg 'Unmounting cgroupfs hierarchy' /usr/bin/cgroupfs-umount log_end_msg $? ;; restart|force-reload) if mountpoint -q /sys/fs/cgroup; then $0 stop fi exec $0 start ;; status) if mountpoint -q /sys/fs/cgroup; then # TODO decide whether to detect "partial mounted" status (ie, whether all available subsystems are mounted correctly) log_success_msg 'cgroupfs hierarchy is mounted' exit 0 else log_failure_msg 'cgroupfs hierarchy is not mounted' exit 1 fi ;; *) echo "Usage: $0 {start|stop|restart|status}" exit 1 ;; esac exit 0