手册页部分 1: 用户命令

退出打印视图

更新时间: 2014 年 7 月
 
 

newtask(1)

名称

newtask - 创建新任务,还可以更改项目

用法概要

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

描述

newtask 命令执行用户的缺省 shell 或某个指定命令,从而将所执行的命令置于指定项目所拥有的某个新任务中。用户的缺省 shell 是在 passwd 数据库中指定的,并使用 getpwnam() 来确定。

此外,newtask 可用来使已在运行的进程进入新创建的任务。还可以此命令形式为新任务指定项目。对于任务关键型且不能重新启动的进程,要将它们放置到新项目中,可能需要以上述方式进行指定。

在扩展记帐处于活动状态时,newtask 命令还会创建一条任务记帐记录来标记前面的系统任务的完成。

选项

支持以下选项:

–c pid

使某个正在运行的进程进入新创建的任务。还可以使用 –p 选项为新任务指定项目。调用方用户必须拥有进程或者具有超级用户特权。

如果是要更改项目,则进程所有者必须是指定的项目的成员,或者调用方用户必须具有超级用户特权。当为某个正在运行的进程更改项目时,该项目的池绑定以及资源控制都将修改,以便与新项目的配置匹配。没有在项目条目中显式指定的控制将被保留。

此选项与 –F–l 选项不兼容。

–F

创建一个最终任务,在最终任务中,进一步的 newtasksettaskid(2) 调用将失败。在某些站点上,最终任务有助于简化查明资源消耗原因的步骤。

–l

将环境更改为用户作为新项目的成员实际重新登录时预期使用的环境。

–p

更改新任务的项目 ID,使其与给定项目名称相关联。调用方用户必须是所请求项目的有效成员或者必须具有超级用户特权,该命令才能成功。如果未指定项目名称,则新任务将在调用方用户的当前项目中启动。

–v

详细:在新的系统任务开始时显示系统任务 ID。

操作数

支持下列操作数:

project

应当对所创建的任务使用的资源负责的项目。必须已在 nsswitch.conf(4) 中定义的项目数据库中定义了所请求的项目。

command

要作为新任务执行的命令。如果未指定命令,则调用用户的登录 shell。(如果登录 shell 不可用,则调用 /bin/sh)。

示例

示例 1 创建新 Shell

以下示例在 canada 项目中创建一个新 shell,并显示任务 ID:

example$ id -p
uid=565(gh) gid=10(staff) projid=10(default)
example$ newtask -v -p canada
38
example$ id -p
uid=565(gh) gid=10(staff) projid=82(canada)
示例 2 运行 date 命令

以下示例在 russia 项目中运行 date 命令:

example$ newtask -p russia date
Tue Aug 31 11:12:10 PDT 1999
示例 3 更改现有进程的项目

以下示例将 pid 为 9999 的现有进程的项目更改为 russia

example$ newtask -c 9999 -p russia

退出状态

将返回以下退出值:

0

成功执行。

1

执行过程中发生致命错误。

2

指定的命令行选项无效。

文件

/etc/project

包含此计算机的有效项目定义的本地数据库。

/proc/pid/*

进程信息和控制文件。

属性

有关以下属性的说明,请参见 attributes(5)

属性类型
属性值
可用性
system/core-os

另请参见

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