CGRULES.CONF(5)

NAME
cgrules.conf - libcgroup configuration file

DESCRIPTION
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>
Where: 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 will get expanded
          %u     username, uid if name resolving fails
          %U     uid
          %g     group name, gid if name resolving fails
          %G     gid
          %p     process name, pid if name not available
          %P     pid
          '\' 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.

EXAMPLES
student         devices         /usergroup/students
Student's processes in the 'devices' subsystem belong to the control group /usergroup/students.
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.

FILES

/etc/cgrules.conf

default libcgroup configuration file

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

BUGS