setproject man page on SmartOS

Man page or keyword search:  
man Server   16655 pages
apropos Keyword Search (all sections)
Output format
SmartOS logo
[printable version]


       setproject - associate a user process with a project

       cc [ flag ... ] file... -lproject [ library ... ]
       #include <project.h>

       int setproject(const char *project_name, const char *user_name,
	    uint_t flags);

       The setproject() function provides a simplified method for the associa‐
       tion of a user process with a project and its various resource  manage‐
       ment  attributes,  as  stored  in the project(4) name service database.
       These attributes include resource control settings, resource pool  mem‐
       bership,	 and  third  party  attributes	(which	are ignored by setpro‐

       If  user_name  is  a  valid  member  of	the   project	specified   by
       project_name, as determined by inproj(3PROJECT), setproject() will cre‐
       ate a new task with settaskid(2) using task flags specified  by	flags,
       use setrctl(2) to associate various resource controls with the process,
       task, and project, and bind the	calling	 process  to  the  appropriate
       resource	 pool  with  pool_set_binding(3POOL).	Resource  controls not
       explicitly specified  in	 the  project  entry  will  be	preserved.  If
       user_name  is  a	 name of the superuser (user with UID equal to 0), the
       setproject() function skips the inproj(3PROJECT) check described	 above
       and allows the superuser to join any project.

       The  current  process  will  not	 be  bound  to	a resource pool if the
       resource pools facility (see pooladm(1M)) is inactive. The setproject()
       function	  will	succeed	 whether  or  not  the	project	 specified  by
       project_name specifies a project.pool attribute. If the resource	 pools
       facility	 is  active,  setproject()  will  fail if the project does not
       specify a project.pool  attribute  and  there  is  no  designated  pool
       accepting default assignments. The setproject() function will also fail
       if there is a specified project.pool attribute for a nonexistent pool.

       Upon successful completion, setproject()	 returns  0.  If  any  of  the
       resource	 control  assignments  failed but the project assignment, pool
       binding, and task creation succeeded, an integer value corresponding to
       the offset into the key-value pair list of the failed attribute assign‐
       ment is returned. If the project assignment or task  creation  was  not
       successful,  setproject()  returns  SETPROJ_ERR_TASK  and sets errno to
       indicate the error. In the event of a  pool  binding  failure,  setpro‐
       ject()  returns	SETPROJ_ERR_POOL and sets errno to indicate the error.
       Additional error information can be retrieved from pool_error(3POOL).

       The setproject() function will fail during project assignment  or  task
       creation if:

		 The invoking task was created with the TASK_FINAL flag.

		 A  resource  control  limiting the number of LWPs or tasks in
		 the target project or zone has been exceeded.

		 A resource control on the given project would be exceeded.

		 The project ID associated  with  the  given  project  is  not
		 within	 the  range  of	 valid project IDs, invalid flags were
		 specified, or user_name is NULL.

		 The effective user of the calling process is not superuser.

		 The specified user is not a valid user of the given  project,
		 user_name  is	not  valid  user  name, or project_name is not
		 valid project name.

       The setproject() function will fail during pool binding if:

		 No resource pool accepting default bindings exists.

		 The effective user of the calling process is not superuser.

		 The specified resource pool is unknown

       If setproject() returns an offset into the  key-value  pair  list,  the
       returned error value is associated with setrctl(2) for resource control

       The setproject() function recognizes a name-structured value  pair  for
       the attributes in the project(4) database with the following format:


       where privilege is one of BASIC or PRIVILEGED, value is a numeric value
       with optional units, and action is one of none, deny, and signal=signum
       or  signal=SIGNAME. For instance, to set a series of progressively more
       assertive control values on a project's per-process CPU time, specify

	 process.max-cpu-time=(PRIVILEGED,1000s,signal=SIGXRES), \

       To prevent a task from  exceeding  a  total  of	128  LWPs,  specify  a
       resource control with


       Specifying  a  resource control name with no values causes all resource
       control values for that name to be cleared on the given project,	 leav‐
       ing  only  the  system resource control value on the specified resource
       control name.

       For example, to remove all resource control values  on  shared  memory,


       The  project  attribute, project.pool, specifies the pool to which pro‐
       cesses associated with the project entry should be  bound.  Its	format


       where  pool_name	 is a valid resource pool within the active configura‐
       tion enabled with pooladm(1M).

       The final attribute is used to finalize the  task  created  by  setpro‐
       ject().	Seesettaskid(2).

       All  further attempts to create new tasks, such as using newtask(1) and
       su(1M), will fail.

       See attributes(5) for descriptions of the following attributes:

       │Interface Stability │ Evolving	      │
       │MT-Level	    │ MT-Safe	      │

       pooladm(1M),  setrctl(2),   settaskid(2),   inproj(3PROJECT),   libpro‐
       ject(3LIB),   pool_error(3POOL),	  pool_set_binding(3POOL),  passwd(4),
       project(4), attributes(5)

				 Apr 10, 2007		  SETPROJECT(3PROJECT)

List of man pages available for SmartOS

Copyright (c) for man pages and the logo by the respective OS vendor.

For those who want to learn more, the polarhome community provides shell access and support.

[legal] [privacy] [GNU] [policy] [cookies] [netiquette] [sponsors] [FAQ]
Polarhome, production since 1999.
Member of Polarhome portal.
Based on Fawad Halim's script.
Vote for polarhome
Free Shell Accounts :: the biggest list on the net