File: cgroupfs-mount.init

package info (click to toggle)
cgroupfs-mount 1.3
  • links: PTS, VCS
  • area: main
  • in suites: stretch
  • size: 76 kB
  • sloc: sh: 88; makefile: 2
file content (76 lines) | stat: -rwxr-xr-x 1,904 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
#!/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