Solaris Containers: Resource Management and Solaris Zones Developer's Guide

/etc/project File

The project file is the heart of workload hierarchy. The project database is maintained on a system through the /etc/project file or over the network through a naming service, such as NIS or LDAP.

The /etc/project file contains five standard projects.


This project is used for all system processes and daemons.


All root processes run in the user.root project.


This special project is for IPQoS.


A default project is assigned to every user.


This project is used for all users in the group staff.

To access the project file programmatically, use the following structure:

struct project {
  char      *pj_name;       /* name of the project */
  projid_t   pj_projid;     /* numerical project ID */
  char      *pj_comment;    /* project comment */
  char     **pj_users;      /* vector of pointers to project user names */
  char     **pj_groups;     /* vector of pointers to project group names */
  char      *pj_attr;       /* project attributes */

The project structure members include the following:


Name of the project.


Project ID.


User-supplied project description.


Pointers to project user members.


Pointers to project group members.


Project attributes. Use these attributes to set values for resource controls and project pools.

Through project attributes, the resource usage can be controlled. Four prefixes are used to group the types of resource control attributes:

For the complete list of resource controls, see resource_controls(5).