secgateway/kernel/rootfs_base/etc/init.d/cgroupfs-mount

77 lines
1.9 KiB
Bash
Executable File

#!/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