使用"进程管理器"来显示在工作站上正在运行的进程,并执行有关进程的动作。可以作这些而不需要了解语法 ps(1), truss(1), Kill(1)的语法,以及其他基于字符的命令。 在相关的地方,列出了就各个"进程管理器"动作相对应的 UNIX 命令。
UNIX 处理系统进程。登录 shell、应用程序、运行的编辑会话,甚至列出您的文件的 ls 程序,都是在操作系统控制下的进程。
在 UNIX 中,可以执行这些进程的操作。例如,可在任何时候查看正在运行的所有程序,根据选择停止和重新启动程序,并调查研究和调试错误进程。
错误进程是这样一个进程,它所作的工作不是您希望其做的工作。例如,由于错误,进程可能消耗掉大部分的可用资源,或它可能干扰另一进程。使用"进程管理器"以便在出现下列情况时检测出错误进程:
工作站性能或反应看起来已变得缓慢。
程序对用户的输入没有反应。
标准服务 (如打印、文件传输或远程登录) 没有回应。
当显示所有进程时,"进程管理器"通常显示三十到五十个进程,所以查找错误进程对未经训练的人来说是很不容易的事。下列提示可能有帮助 (否则,请与系统管理员联系) :
使用"性能监视器"以查看性能参数(如 CPU 的使用或软盘的使用)是否特别高。如果是,可以使用"进程管理器"来识别错误的进程。
使用"进程管理器"来标识:
在不应该使用时,却使用了大部分的可用 CPU 或 RAM 的进程
父进程已经转换成 1 的孤儿进程,即 init (但不是这样的进程,如 sched、dtlogin 或 cron,其父进程 ID应该是 1)
很久以前开始的,并且在应该中止时而未中止的进程
另一用户拥有的正在降低系统性能的大进程
"进程管理器"显示并提供对正在工作站上运行的进程的访问。
列表中的每个进程项目都像下表中解释的那样给出有用的信息:
列标题 | 意义 |
---|---|
ID | 进程 ID |
名称 | 进程名称 |
属主 | 属主姓名 |
CPU% | 最近使用的 CPU 时间与同一时期中可用的时间之比,表示为百分数 |
RAM | 该进程当前所占用的 RAM 总量 |
交换区 | 虚拟内存中总的大小 |
开始于 | 实际开始时间 (或如果不是当前的,则日期) |
父进程 | 父进程 ID,即 P"PID" |
命令 | 执行的实际 UNIX 命令 (切短的) |
可以执行下列动作而不影响选定工作站上的任何进程:
显示所有进程,或只显示含有指定字符串的那些进程
查找含有指定字符串的进程
显示滚动区中按任何列排序的进程
改变采样间隔,复制和保存采样信息
在"进程管理器"窗口的"过滤器"字段中键入过滤器文本。
过滤器文本应该是个字符串,对要显示进程的子集或组的进程项目来说,该字符串是公用的。例如,在图形 17-1中,用户显示与"音频工具"有关的所有进程。
按回车键。
"进程管理器"更新滚动区中的进程,以只包括那些含有与过滤器文本准确匹配的进程项目。
要返回到显示所有的进程,清除"过滤器"字段,并按回车键。
将查找文本键入"查找"下拉式框,或从"查找"下放式列表选择先前使用的查找文本。
查找文本应该是个字符串,对要显示所有进程的进程项目来说,该字符串是公用的。
按回车键以在当前光标位置下高亮显示查找文本的第一次出现。
文本可以位于进程项目的任何字段中。
按回车键以高亮显示下一出现,如此等等。
当找到所需的进程项目时,清除"查找"字段。
当查找到滚动区的末尾时,查找并不返回到列表的开头。因此,要确保查找所有的进程,在"查找"框中键入查找文本之前,选择列表中的第一 个进程项目。
按缺省值,"进程管理器"按 CPU 使用的降序列出进程项目。可以找到该列,因为 CPU 使用列 (CPU%) 上的列标题是凹陷的,而其他列标题 却不是。
要选择用以对进程项目列表进行排序的列,单击相关的列标题或从"查看"菜单选择列名称。
"进程管理器"将进程项目的列表排序,并按新顺序显示它们。 每个列的缺省排列顺序说明如下表所示。
表 17-1 进程项目的缺省显示顺序选定的列标题 | 方法 |
---|---|
ID | 进程 ID 以升序的数字排序 |
名称 | 以进程名称的字母排序 |
属主 | 以属主姓名的字母排序 |
CPU% | CPU 的使用按降序的数字排序 |
RAM | RAM 的使用按降序的数字排序 |
交换区 | 交换空间的使用按降序的数字排序 |
开始于 | 实际开始的时间按年月以降序排序 |
父进程 | 对父进程的进程 ID 按降序的数字排序 |
命令 | 对全路径名按降序的字母排序 (字符如 / 有小于字母的排序值) |
(可选) 要颠倒这些列的任何一列的排序顺序 (例如,要按升序排列 RAM 的使用情况),单击已按下的列标题按钮。
列标题区将返回并以颠倒的顺序排序显示。
缺省情况下,"进程管理器"对工作站进行采样,并每 30 秒更新一次显示。
要更改采样间隔,在"采样每个"框中键入秒数 (最大 604800,即 14 天) 。
按回车键以使新的采样频率生效。
要立即采样,从"采样"菜单选择"现在"。
"进程管理器"进行采样,然后更新显示。
可以在显示中选择和复制一个或多个进程项目,并把文本粘贴到其他应用程序。
也可有将采样数据保存到文件的下列选项:
创建只包含当前采样的新文件
设置每个新采样所附加的记录文件
从"采样"菜单选择"记录文件"。
"进程管理器"显示"记录文件"对话框。
指定新文件的名称和位置,并单击"确定"。
"进程管理器"创建文本文件,并附加每个新采样 (用标题信息)到文件。
在中止"进程管理器"应用程序之前,或在从"采样"菜单选择"停止记录"之前,"进程管理器"会继续将采样附加到该文件。
当已标识和选择列表中的进程项目时,可以执行有关进程的下列操作:
发送 Kill 信号以终止进程或调用响应
查找"地址管理器"中关于属主的进一步信息
追踪系统调用、显示子进程或运行调试程序
显示其堆栈或祖先
如果不了解执行这些步骤中的任一步骤的意义,请与系统管理员联系。
UNIX 中的 kill 命令能让用户向进程发送信号。信号是发送给进程的信息,以中断进程并使其作出反应。如果进程被设计成对发送信号类型作出反应,则其将按设计作出反应;否则,其将中止进程。有 42 种信号定义在 信号(5)手册页。 下表列出了常用的信号编号 / 名称及其意义。
信号编号 | 信号名称 | 意义 |
---|---|---|
1 | HUP | 暂停 (常在退出系统前使用) |
2 | INT | 中断 (和终端会话中的按 Control+C 相同) |
9 | Kill |
Kill (中止而不清除) 只有进程的属主或超级用户 (根) 发出的命令才起作用 程序无法响应该信号;它必须中止 |
15 | TERM |
Kill (在清除后完美地中止) 只有进程的属主或超级用户 (根) 发出的命令才起作用 |
"杀死"菜单项目使您能发送一个"Kill" (9) 信号而迅速地中止进程。"信号"菜单项目提供您对于通过Kill(1) 命令所发送的信号的更多控制。例如,可以发送 INT 信号或 HUP 信号,等等。
只应向进程发送那些了解其意义的信号。例如,如果选择登录 shell,并发送 kill 信号,将立即退出系统。关于进程和作业控制的进一步信息,请与系统管理员联系,或参阅下列说明:
在"进程管理器"滚动窗格选择进程项。
从"进程"菜单选择"杀死"。
要有许可权,"进程管理器"可中止进程 (及其子进程) ;否则将显示出错。有时要中止进程要花几秒种。如果在下次"进程管理器"更新其显示时进程不出现,则可以说那个进程已经中止。
等同的 UNIX 命令是:
kill -9 PID 其中 PID 是选定进程的进程 ID。
通过重新定义下面文件中所标的"Kill"动作,可以重新定义"杀死"菜单项所执行的命令:
/usr/dt/appconfig/types/C/sdtprocess.dt
在"进程管理器"滚动区选择进程项。
从"进程"菜单选择"信号"。
"进程管理器"显示请求您指定信号的对话框。您必须至少提供在信号(5)手册页中定义的 42 个信号中的一个信号。
键入相关的信号编号或名称,并单击"确定"。
"进程管理器"发出信号命令,并关闭对话框。未发出成功信息。中止进程通常中止其子进程。
等同的 UNIX 命令是:kill -signum_name PID
其中 -signum_name 是信号编号或名称,而 PID 是选定进程的进程 ID。
在"进程管理器"滚动窗格选择进程项。
从"进程"菜单选择"寻找属主"。
"进程管理器"打开"地址管理器",并请求其为选定进程的系统用户姓名查找"系统卡片"。关于"地址管理器"的进一步细节,请参阅第 16 章,使用地址管理器。
等同的 UNIX 命令是:
/usr/proc/bin/ptree PID
其中 PID 是选定进程的进程 ID。
当 UNIX 进程初始化一个或多个从属的进程时,我们把这些称为子进程,或子女。子进程和父进程具有相同的用户 ID。
在"进程管理器"滚动窗格选择进程项。
从"进程"菜单选择"追踪子进程"。
"进程管理器"为选定的进程显示所有新进程 (及其子进程的新子进程,如此循环) 的创建记录。
使用在中描述的错误码名称报告各种错误返回Intro(2)手册页。
等同的 UNIX 命令是:
truss -fa -texec,fork -s*CLD,ALRM -p PID
其中 PID 是选定进程的进程 ID。
在进程的执行期间,它调用 UNIX 内核程序或执行系统调用。可能想跟踪这些系统调用,以查看其对其他进程的影响。
在"进程管理器"滚动窗格选择进程项。
从"进程"菜单选择"跟踪系统调用"。
"进程管理器"显示请求输入可选参数的对话框。
单击"确定"。
跟踪输出的每一行都用其参数和返回值来报告错误、信号名称或系统调用名称。关于进一步的信息,请参阅 truss(1)手册页。
等同的 UNIX 命令是:
truss -p PID
其中 PID 是选定进程的进程 ID。
等同的 UNIX 命令是:
/usr/proc/bin/pstack PID
其中PID 是选定进程的进程 ID。
应用程序开发者和系统管理员有时使用调试应用程序,如"Sun 工作区"来调查研究错误进程。"进程"菜单上的"调试"项目为选定的进程调用您喜欢的调试程序。
使用您喜欢的调试程序调试进程。
等同的 UNIX 命令是:
workshop -d command
其中 workshop 是调试程序的名称, command 是将进程 ID 传送给调试程序所需要的命令。