安装和管理 Solaris Container Manager 1.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. 根据不同的 OS 版本选择相应的方法:

    • 对于 Solaris 8 OS,请键入:


      % srmuser 用户名 newtask -p 项目名 应用程序名
      

      其中,用户名是 UNIX 用户名,项目名的格式为 user.用户名。由于 Solaris 8 OS 仅支持基于用户的容器,因此用户名项目名相同。

    • 对于 Solaris 9 或 Solaris 10 OS,请键入:


      % newtask -p 项目名 应用程序名
      

      其中,项目名是与容器相关联的项目,应用程序名是启动该应用程序的命令,包括所有命令参数。

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


示例 4–6 在 Solaris 9 或 Solaris 10 OS 中启动容器中的应用程序

以下是启动名为 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 中启动的应用程序相同。