安装和管理 Solaris Container Manager 3.6

移动或启动项目中的进程

如果项目正在管理的应用程序不具有唯一的可执行文件名称,则应该手动将进程移动到项目中。此方法可确保您仅跟踪所需应用程序的进程。

Procedure将进程单独移动到基于应用程序的项目中

如果没有为基于应用程序的项目提供匹配表达式,并且希望将应用程序的进程单独移动到项目中,请使用此过程。

步骤
  1. 创建基于应用程序的项目以便管理应用程序。选择“不使用匹配表达式”复选框。

    有关详细步骤,请参见创建基于应用程序的项目一节。

  2. 键入以下命令,查看 /etc/project 文件以确定项目名称:


    % cat /etc/project
    

    您将在步骤 5 中需要此项目名称。

  3. 如有必要,请在终端窗口中启动应用程序。

  4. 确定与应用程序对应的进程。

    有关示例,请参见示例 4–1示例 4–2示例 4–3

  5. 移动相应的进程。

    1. 在 Container Manager GUI 中,单击导航窗口内的主机。

    2. 单击“项目”选项卡。

      屏幕上将显示“项目”表。

    3. 在“项目表”中,单击项目名称。请注意,项目名称带有下划线表示这是一个链接。

      屏幕上将显示“项目属性”选项卡。

    4. 单击“进程”选项卡。

      屏幕上将显示“进程”表。

    5. 选择要移动的进程。

    6. 单击“移动”按钮。

      屏幕上将显示“移动进程”对话框。

    7. 从项目(容器)列表中为进程选择新项目(容器)。

    8. 单击“确定”。

  6. 重复执行步骤 5,直到所有进程均已移动。


示例 4–4 使用 ps 检验进程是否已移动到项目中

可以组合使用 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 


示例 4–5 使用 prstat 检验进程是否已移动到项目中

如果知道项目名称,则可以使用命令 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

Procedure启动项目中的应用程序

步骤
  1. 创建基于应用程序的项目以便管理应用程序。选择“不使用匹配表达式”复选框。

    有关详细步骤,请参见创建基于应用程序的项目

  2. 根据操作系统版本,从以下操作中进行选择:

    • 对于 Solaris 8 操作系统,键入:


      % srmuser user_name newtask -p project_name application_name
      

      其中,user_name 是 UNIX 用户名,project_name 的形式为 user.username。在 Solaris 8 操作系统上,由于仅支持基于用户的容器,因此 user_nameproject_name 是相同的。

    • 对于 Solaris 9 或 Solaris 10 操作系统,键入:


      % newtask -p project_name application_name
      

      其中,project_name 是与容器关联的项目,application_name 是启动应用程序的命令(包括任何命令参数)。

    将在容器中启动应用程序。


示例 4–6 在 Solaris 9 或 Solaris 10 操作系统上从容器内启动应用程序

以下是在名为 music 的容器内启动名为 tracks 的应用程序的示例:


% newtask -p music tracks -z 0 mozart.au

其中,-z 0 mozart.au 是应用程序 tracks 的命令行参数。



示例 4–7 检验应用程序与项目的关联

启动应用程序后,可以通过键入以下命令检验应用程序与哪个项目关联:


% 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 中启动的应用程序相同。