newtask − create new task or change task or project of running process


newtask [-c pid | [-Fl] [command...]] [ -p project] [-v]


The newtask command executes the user’s default shell or a specified command, placing the executed command in a new task owned by the specified project. The user’s default shell is the one specified in the passwd database, and is determined via getpwnam().

Alternatively, newtask may be used to change the task of an already running process. A project may also be specified in this form of the command. This may be desirable for processes that are mission critical and cannot be restarted in order to put them into a new project.

In the case that extended accounting is active, the newtask command may additionally cause the creation of a task accounting record marking the completion of the preceding system task.


The following options are supported:
-c pid

Changes the task or project of a running process. The invoking user must either own the process or have super-user privileges.

If the project is being changed, the process owner must be a member of the specified project. When the project is changed for a running process, its pool binding as well as resource controls are modified to match the configuration of the new project. Controls not explicitly specified in the project entry will be preserved.

This option is incompatible with the -F and -l options.


Creates a finalized task, within which further newtask or settaskid(2) invocations would fail. Finalized tasks may be useful at some sites for simplifying the attribution of resource consumption.


Changes the environment to what would be expected if the user dactually logged in again as a member of the new project.


Changes the project ID of the new task to that associated with the given project name. The invoking user must be a valid member of the requested project for the command to succeed. If no project name is specified, the new task is started in the invoking user’s current project.


Verbose: displays the system task id as the new system task is begun.


The following operands are supported:

The project to which resource usage by the created task should be charged. The requested project must be defined in the project databases defined in nsswitch.conf(4).


The command to be executed as the new task. If no command is given, the user’s login shell is invoked. (If the login shell is not available, /bin/sh is invoked.)


Example 1: Creating a new shell

The following example creates a new shell in the canada project, displaying the task id:

example$ id -p

uid=565(gh) gid=10(staff) projid=10(default)
example$ newtask -v -p canada
example$ id -p
uid=565(gh) gid=10(staff) projid=82(canada)

Example 2: Running the date command

The following example runs the date command in the russia project:

example$ newtask -p russia date

Tue Aug 31 11:12:10 PDT 1999

Example 3: Changing the project of an existing process

The following example changes the project of the existing process with a pid of 9999 to russia:

example$ newtask -c 9999 -p russia


The following exit values are returned:


Successful execution.


A fatal error occurred during execution.


Invalid command line options were specified.



Local database containing valid project definitions for this machine.


Process information and control files.


See attributes(5) for a description of the following attributes:

Image /var/www/mancx/application/src/../www/___/img/man1/man1/newtask1.png


proc(1), id(1M), poolbind(1M), execvp(2), setrctl(2), settaskid(2), setproject(3PROJECT), nsswitch.conf(4), proc(4), project(4), attributes(5)