安装和管理 Solaris Container Manager 3.6.1

移动或启动项目中的进程

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

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