Solaris 公用桌面环境:用户指南

第 17 章 使用进程管理器

使用"进程管理器"来显示在工作站上正在运行的进程, 并执行有关进程的动作。可以作这些而不需要了解 ps(1)truss(1)kill(1)的语法,以及其它基于字符的命令。在相关的地方,列出了就各个"进程管理器"动作相对应的 UNIX 命令。

关于进程

UNIX 处理系统进程。登录shell、应用程序、编辑运行的会话过程,甚至列出文件的 ls 程序都是在操作系统控制下的进程。

在 UNIX 中,可以执行这些进程的操作。例如,可在任何时候查看正在运行的所有程序,根据选择停止和重新启动程序,并调查研究和调试错误进程。

查找错误进程的提示

错误进程是这样一个进程,它所作的工作不是您希望其做的工作。例如,由于错误,进程可能消耗掉大部分的可用资源,或它可能干扰另一进程。使用"进程管理器"以便在出现下列情况时检测出错误进程:

当显示所有进程时,"进程管理器"通常显示三十到五十个进程,所以查找错误进程可以使未经训练的人吃惊。下列提示可能有帮助(否则,请与系统管理员联系):

采样、显示和保存进程信息

"进程管理器"显示并提供对正在工作站上运行的进程的访问。

图形 17-1 进程管理器显示包含字符串"audio"的进程项目。

Graphic

列表中的每个进程项目都象下表中解释的那样给出有用的信息:

 列标题 意义
 ID 进程 ID
 名称 进程名称
 所有者 所有者姓名
 CPU% 最近使用的 CPU 时间与同一时期中可用的时间之比,表示为百分数
 RAM 该进程当前所占用的 RAM 总量
 交换 虚拟内存中总的大小
 开始时 实际开始时间(或如果不是当前的,则日期)
 父进程 父进程 ID,即 PPID
 命令 执行的实际 UNIX 命令(切短的)

可以执行下列动作而不影响选定工作站上的任何进程:

打开进程管理器

    单击"前面板"上"工具"子面板上的"查找进程"控制。

    显示"进程管理器"主窗口。它立即对工作站进行采样,并显示所有当前进程的采样。

显示进程的子集

  1. 在"进程管理器"窗口的"过滤器"字段中键入过滤器文本。

    过滤器文本应该是个字符串,对要显示进程的子集或组的进程项目来说,该字符串是公用的。例如,在图形 17-1中,用户显示与"音频工具"有关的所有进程。

  2. 按回车键。

    "进程管理器"更新滚动区中的进程,以只包括那些含有与过滤器文本准确匹配的进程项目。

  3. 要返回到显示所有的进程,清除"过滤器"字段,并按回车键。

查找进程

  1. 将搜索文本键入"查找"下放式框,或从"查找"下放式列表选择先前使用的搜索文本。

    搜索文本应该是个字符串,对要显示所有进程的进程项目来说,该字符串是公用的。

  2. 按回车键以在当前光标位置下高亮显示搜索文本的第一次出现。

    文本可以位于进程项目的任何字段中。

  3. 按回车键以高亮显示下一出现,如此等等。

  4. 当找到所需的进程项目时,清除"查找"字段。


    注意:

    当搜索到滚动区的末尾时,搜索并不返回到列表的开头。因此,要确保搜索所有的进程,在"查找"框中键入搜索文本之前,选择列表中的第一 个进程项目。


更改显示的排序顺序

按缺省值,"进程管理器"按 CPU 使用的降序列出进程项目。可以找到该列,因为 CPU 使用列 (CPU%)上的列标题是凹陷的,而其它列标题 却不是。

  1. 要选择用以对进程项目列表进行排序的列,单击相关的列标题或从"查看"菜单选择列名称。

    "进程管理器"将进程项目的列表排序,并按新顺序显示它们。每个列的缺省排列顺序说明如下表所示。

    表 17-1 进程项目的缺省显示顺序
     选定的列标题 方法
     ID 进程 ID 以升序的数字排序
     名称 以进程名称的字母排序
     所有者 以所有者姓名的字母排序
     CPU%  CPU 的使用按降序的数字排序
     RAM  RAM 的使用按降序的数字排序
     交换 交换空间的使用按降序的数字排序
     开始时 实际开始的时间按年月以降序排序
     父进程 对父进程的进程 ID 按降序的数字排序
     命令 对全路径名按降序的字母排序(字符如 / 有小于字母的排序值)

  2. (可选)要颠倒这些列的任何一列的排序顺序(例如,要按 序排序 RAM 使用),单击凹陷的列标题按钮。

    列标题区将返回并以颠倒的顺序排序显示。

    Graphic

更改采样间隔

缺省情况下,"进程管理器"对工作站进行采样,并每 30 秒更新一次显示。

    要禁用/启用连续采样模式,从"采样"菜单选择 "停止/启动"。

    如果开启连续采样模式,则将看见"采样"菜单上的"停止"菜单项目;否则,菜单项目将读取"启动"。

    要更改采样间隔,在"采样每个"框中键入秒数(最大 604800,即 14 天)。

    按回车键以使新的采样频率生效。

    要立即采样,从"采样"菜单选择"现在"。

    "进程管理器"进行采样,然后更新显示。

复制和保存

可以在显示中选择和复制一个或多个进程项目,并把文本粘贴到其它应用程序。

也可有将采样数据保存到文件的下列选项:

要创建包含当前采样的文件

  1. 从"采样"菜单选择"另存为"。

    "进程管理器"显示"另存为" 对话框。

  2. 指定新文件的名称和位置,并单击"确定"。

    "进程管理器"创建包含当前显示的进程项目的文本文件。

要设置记录文件

  1. 从"采样"菜单选择"记录文件"。

    "进程管理器"显示"记录文件"对话框。

  2. 指定新文件的名称和位置,并单击"确定"。

    "进程管理器"创建文本文件,并附加每个新采样(用标题信息)到文件。


    小心:小心:

    在终止"进程管理器"应用程序之前,或在从"采样"菜单选择"停止记录"之前,"进程管理器"将继续将采样附加到该文件。


执行有关选定进程的动作

当已标识和选择列表中的进程项目时,可以执行有关进程的下列动作:


小心:小心:

如果不了解执行这些步骤中的任一步骤的意义,请与系统管理员联系。


给进程发送中止信号

UNIX 中的 kill 命令能让用户向进程发送信号。信号是发送给进程的信息,以干扰进程并使其作出反应。如果进程被设计成对发送信号类型作出反应,则其将按设计作出反应;否则,其将终止进程。有 42 种信号定义在 signal(5) 手册页中。下表列出了常用的信号编号 / 名称及其意义。

 信号编号 信号名称 意义
 1 HUP 暂停(常在退出系统前使用)
 2 INT 干扰(和终端会话过程中的按 Control+C 相同)
 9 "中止"

中止(终止而不清除) 

只有进程的所有者或超级用户(根)发出的命令才起作用 

进程无法响应该信号;它必须终止 

 15 TERM

中止(在清除后完美地终止) 

只有进程的所有者或超级用户(根)发出的命令才起作用 

"中止"菜单项目使您能发送 kill(9)信号而迅速地 中止进程。"信号"菜单项目提供您对于通过kill(1) 命令所发送的信号的更多控制。例如,可以发送 INT信号或 HUP 信号,等等。


小心:小心:

只应向进程发送那些了解其意义的信号。例如,如果选择登录shell,并发送 kill 信号,将立即退出系统。关于进程和作业控制的进一步信息,请与系统管理员联系,或参阅下列说明:


要中止进程(迅速中止)

  1. 在"进程管理器"滚动区中选择进程项目。

  2. 从"进程"菜单选择"中止"。

    要有许可权,"进程管理器"可中止进程(及其子进程);否则将显示出错。有时要终止进程要花几秒种。如果在下次"进程管理器"更新其显示时进程不出现,则可以说那个进程已经中止。


    提示:

    等同的 UNIX 命令是:

    kill -9 PID ,其中 PID 是选定进程的进程 ID。

    通过重新定义下面文件中所标的 'Kill' 动作,可以重新定义"中止"菜单项所执行的命令:

    /usr/dt/appconfig/types/C/sdtprocess.dt


要向进程发送信号

  1. 在"进程管理器"滚动区中选择进程项目。

  2. 从"进程"菜单选择"信号"。

    "进程管理器"显示请求您指定信号的对话框。至少提供在 signal(5) 手册页中定义的 42 个信号中的一个。

  3. 键入相关的信号编号或名称,并单击"确定"。

    "进程管理器"发出信号命令,并关闭 对话框。未发出成功信息。中止进程通常中止其子进程。


提示:

等同的 UNIX 命令是:kill -signum_name PID

其中 -signum_name 是信号编号或名称,而 PID 是选定进程的进程 ID。


寻找进程的所有者

  1. 在"进程管理器"滚动区中选择进程项目。

  2. 从"进程"菜单选择"寻找所有者"。

    "进程管理器"打开"地址管理器",并请求其为选定进程的系统用户姓名搜索"系统卡片"。关于"地址管理器"的进一步细节,请参阅第 16 章,使用地址管理器

显示进程的祖先

  1. 在"进程管理器" 滚动区中选择项目。

  2. 从"进程"菜单选择"显示祖先"。

    "进程管理器"为指定的进程显示包含进程树的窗口。子进程从各自的父进程缩进。

    Graphic

提示:

等同的 UNIX 命令是:

/usr/proc/bin/ptree PID

其中 PID 是选定进程的进程 ID。


追踪子进程

当 UNIX 进程初始化一个或多个依赖进程时,我们把这些称为子进程,或子女。子进程和父进程具有相同的用户 ID。

  1. 在"进程管理器"滚动区中选择进程。

  2. 从"进程"菜单选择"追踪子进程"。

    "进程管理器"为选定的进程显示所有新进程(及其子进程的新子进程,如此循环)的创建记录。

    错误的返回信息,用手册页中Intro(2)所描述的错误码名称来报告。


    提示:

    等同的 UNIX 命令是:

    truss -fa -texec,fork -s*CLD,ALRM -p PID

    其中 PID 是选定进程的 ID。


追踪系统调用

在进程的执行期间,它调用 UNIX 内核程序或执行系统调用。可能想追踪这些系统调用,以查看其对其它进程的影响。

  1. 在"进程管理器"滚动区选择进程。

  2. 从"进程"菜单选择"追踪系统调用"。

    "进程管理器"显示请求输入可选参数的对话框。

  3. 单击"确定"。

    追踪输出的每一行都用其参数和返回值来报告错误、信号名称或系统调用名称。关于进一步的信息,请参阅 truss(1) 手册页。


提示:

等同的 UNIX 命令是:

truss -p PID

其中 PID 是选定进程的进程 ID。


显示进程的堆栈

  1. 在"进程管理器" 滚动区中选择进程。

  2. 从"进程"菜单选择"显示堆栈"。

    "进程管理器"为选定的进程显示含有十六进制数和符号堆栈追踪的窗口。


提示:

等同的 UNIX 命令是:

/usr/proc/bin/pstack PID

其中 PID 是选定进程的进程 ID。


调试进程

应用程序开发者和系统管理员有时使用调试应用程序,如"Sun 工作区"来调查研究错误进程。"进程"菜单上的"调试"项目对于选定的进程调用您喜欢的调试程序。

    使用您喜欢的调试程序调试进程。


提示:

等同的 UNIX 命令是:

workshop -d command

其中 workshop 是调试程序的名称,command 是将进程 ID 传送给调试程序所需要的命令。