Provided by: cgroup-tools_0.41-7ubuntu1_amd64 bug


       cgrules.conf - libcgroup configuration file


       cgrules.conf  configuration file is used by libcgroups to define control groups to which a
       process belongs.

       The file contains a list of rules which assign to a defined group/user a control group  in
       a subsystem (or control groups in subsystems).

       Rules have two formats:

           <user>                   <controllers>       <destination>
           <user>:<process name>    <controllers>       <destination>


       user can be:
           - a user name
           - a group name with @group syntax
           - the wildcard '*', for any user or group
           - '%', which is equivalent to "ditto" (useful for
             multi-line rules where different cgroups need to be
             specified for various hierarchies for a single user)

       process name is optional and it can be:
           - a process name
           - a full command path of a process

       controllers can be:
           - comma separated controller names (no spaces) or
           - * (for all mounted controllers)

       destination can be:
           - path relative to the controller hierarchy (ex. pgrp1/gid1/uid1)
           - following strings called "templates" and will get expanded

                 %u     uid
                 %U     username, uid if name resolving fails
                 %g     gid
                 %G     group name, gid if name resolving fails
                 %p     pid
                 %P     process name, pid if name not available

                 '\' can be used to escape '%'
       First rule which matches the criteria will be executed.

       Any text starting with '#' is considered as a start of comment line and is ignored.

       If  the  destination contains template string, the control group can be created on-fly. In
       time when some process wants to use the template rule which leads to  control  group  (see
       cgexec  (1))  and  the  control  group  does not exist, the group is created. The template
       control group parameters  can  be  specified  in  cgconfig.conf  configuration  file.  See
       (cgconfig.conf  (5)).   If  the  template definition is not found there created group have
       default kernel setting.


       student         devices         /usergroup/students
       Student's  processes  in  the  'devices'   subsystem   belong   to   the   control   group

       student:cp       devices         /usergroup/students/cp
       When student executes 'cp' command, the processes in the 'devices' subsystem belong to the
       control group /usergroup/students/cp.

       @admin           *              admingroup/
       Processes started by anybody from admin group no matter in what subsystem  belong  to  the
       control group admingroup/.

       peter           cpu             test1/
       %               memory          test2/
       The  first  line  says Peter's task for cpu controller belongs to test1 control group. The
       second one says Peter's tasks for memory controller belong to test2/ control group.

       *               *               default/
       All processes in any subsystem belong to the control group default/.  Since  the  earliest
       matched  rule is applied, it makes sense to have this line at the end of the list. It will
       put a task which was not mentioned in the previous rules to default/ control group.

       @students cpu,cpuacct    students/%u
       Processes in cpu and cpuacct subsystems started by anybody from students group  belong  to
       group students/name. Where "name" is user name of owner of the process.


       default libcgroup configuration file


       cgconfig.conf (5), cgclassify (1), cgred.conf (5)