如果项目正在管理的应用程序不具有唯一的可执行文件名称,则应该手动将进程移动到项目中。此方法可确保您仅跟踪所需应用程序的进程。
如果没有为基于应用程序的项目提供匹配表达式,并且希望将应用程序的进程单独移动到项目中,请使用此过程。
创建基于应用程序的项目以便管理应用程序。选择“不使用匹配表达式”复选框。
有关详细步骤,请参见创建基于应用程序的项目。
键入以下命令,查看 /etc/project 文件以确定项目名称:
% cat /etc/project |
您将在步骤 5 中需要此项目名称。
如有必要,请在终端窗口中启动应用程序。
确定与应用程序对应的进程。
移动相应的进程。
重复执行步骤 5,直到所有进程均已移动。
可以组合使用 ps 命令和 grep 检验进程是否已移动到容器中。以下示例显示了单独移动的进程现在已位于容器 payroll 中:
% ps -ae -o pid,project,comm | grep payroll 17773 payroll ora_reco_AcctEZ 17763 payroll ora_pmon_AcctEZ 17767 payroll ora_lgwr_AcctEZ |
如果知道项目名称,则可以使用命令 prstat 检验进程是否已移动到容器中。在此示例中,项目名称为 payroll。
% prstat -J payroll PID USERNAME SIZE RSS STATE PRI NICE TIME CPU PROCESS/NLWP 17773 admin 216M 215M cpu2 1 0 0:05:08 29% ora_reco_AcctEZ/1 17763 admin 834M 782M sleep 1 0 0:35:02 0% ora_pmon_AcctEZ/1 17767 admin 364M 352M run 1 0 0:22:05 23% ora_lgwr_AcctEZ/1 |
创建基于应用程序的项目以便管理应用程序。选择“不使用匹配表达式”复选框。
有关详细步骤,请参见创建基于应用程序的项目。
根据操作系统版本,从以下操作中进行选择:
对于 Solaris 8 操作系统,键入:
% srmuser user_name newtask -p project_name application_name |
其中,user_name 是 UNIX 用户名,project_name 的形式为 user.username 格式。在 Solaris 8 操作系统上,由于仅支持基于用户的容器,因此 user_name 和 project_name 是相同的。
对于 Solaris 9 或 Solaris 10 操作系统,键入:
% newtask -p project_name application_name |
其中,project_name 是与容器关联的项目,application_name 是启动应用程序的命令(包括任何命令参数)。
将在容器中启动应用程序。
以下是在名为 music 的容器内启动名为 tracks 的应用程序的示例:
% newtask -p music tracks -z 0 mozart.au |
其中,-z 0 mozart.au 是应用程序 tracks 的命令行参数。
启动应用程序后,可以通过键入以下命令检验应用程序与哪个项目关联:
% ps -ae -o pid,project,comm |
以下是此命令的输出示例:
PID PROJECT COMMAND ... 17771 default ora_smon_SunMC 16246 system rquotad 26760 group.staff /bin/csh 16266 music tracks 17777 default ora_d000_SunMC 17775 default ora_s000_SunMC 17769 default ora_ckpt_SunMC |
在此示例中,名为 tracks 的应用程序具有 PID 16266,项目为 music,可执行文件为 tracks。这与示例 4–6 中启动的应用程序相同。