blob: f539fe7427524a205a715d65db59ec5f8e1701db (
plain)
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
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
|
#!/bin/bash
#
# Start/Stop the CGroups Rules Engine Daemon
#
# Copyright Red Hat Inc. 2008
#
# Authors: Steve Olivieri <sjo@redhat.com>
# This program is free software; you can redistribute it and/or modify it
# under the terms of version 2.1 of the GNU Lesser General Public License
# as published by the Free Software Foundation.
#
# This program is distributed in the hope that it would be useful, but
# WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
#
# cgred GGroups Rules Engine Daemon
# chkconfig: - 14 86
# description: This is a daemon for automatically classifying processes \
# into cgroups based on UID/GID.
#
# processname: cgrulesengd
# pidfile: /var/run/cgred.pid
#
### BEGIN INIT INFO
# Provides: cgrulesengd
# Required-Start: $local_fs $syslog $cgconfig
# Required-Stop: $local_fs $syslog
# Should-Start:
# Should-Stop:
# Short-Description: start and stop the cgroups rules engine daemon
# Description: CGroup Rules Engine is a tool for automatically using \
# cgroups to classify processes
### END INIT INFO
prefix=@prefix@;exec_prefix=@exec_prefix@;bindir=@bindir@
CGRED_BIN=$bindir/cgrulesengd
# Sanity checks
[ -x $CGRED_BIN ] || exit 1
# Source function library & LSB routines
. /etc/rc.d/init.d/functions
. /lib/lsb/init-functions
# Read in configuration options.
if [ -f "/etc/sysconfig/cgred.conf" ] ; then
. /etc/sysconfig/cgred.conf
OPTIONS="$NODAEMON $LOG"
if [ -n "$LOG_FILE" ]; then
OPTIONS="$OPTIONS --log-file=$LOG_FILE"
fi
else
OPTIONS=""
fi
# For convenience
processname=cgrulesengd
servicename=cgred
pidfile=/var/run/cgred.pid
RETVAL=0
start()
{
echo $"Starting CGroup Rules Engine Daemon..."
if [ -f "/var/lock/subsys/$servicename" ] ; then
log_failure_msg "$servicename is already running with PID `cat ${pidfile}`"
return 1
fi
daemon --check $servicename --pidfile $pidfile $processname $OPTIONS
RETVAL=$?
echo
[ $RETVAL -eq 0 ] && touch /var/lock/subsys/$servicename
echo "`pidof $processname`" > $pidfile
}
stop()
{
echo -n $"Stopping CGroup Rules Engine Daemon..."
killproc -p $pidfile $processname -TERM
RETVAL=$?
echo
if [ $RETVAL -eq 0 ] ; then
rm -f /var/lock/subsys/$servicename
rm -f $pidfile
fi
log_success_msg
}
# See how we are called
case "$1" in
start)
start
;;
stop)
stop
;;
status)
status -p $pidfile $processname
RETVAL=$?
;;
restart)
stop
start
;;
condrestart)
if [ -f /var/lock/subsys/$servicename ] ; then
stop
start
fi
;;
reload|flash)
if [ -f /var/lock/subsys/$servicename ] ; then
echo $"Reloading rules configuration..."
kill -s 12 `cat ${pidfile}`
RETVAL=$?
if [ $RETVAL -eq 0 ] ; then
log_success_msg
else
log_failure_msg
fi
else
log_failure_msg "$servicename is not running."
fi
;;
*)
echo $"Usage: $0 {start|stop|status|restart|condrestart|reload}"
;;
esac
exit $RETVAL
|