在 Oracle® Solaris 11.2 中管理设备

退出打印视图

更新时间: 2014 年 7 月
 
 

关于 RCM 脚本

RCM 脚本可以为以下任一脚本:

  • RCM 守护进程运行的可执行 shell 脚本(Perl、shcshksh)或二进制程序。Perl 是建议使用的语言。

  • 通过使用脚本文件所有者的用户 ID 在其自身的地址空间中运行的脚本。

  • 使用 cfgadm 命令动态重新配置系统资源时,由 RCM 守护进程运行的脚本。

动态移除设备时,可以使用 RCM 脚本从应用程序中释放该设备。如果设备当前已打开,RCM 脚本还会关闭该设备。

例如,磁带备份应用程序的 RCM 脚本可以通知磁带备份应用程序关闭磁带机或磁带备份应用程序。

按如下方式运行 RCM 脚本:

$ script-name command [args ...]

RCM 脚本可执行以下基本步骤:

  1. 通过命令行参数获取 RCM 命令。

  2. 执行该命令。

  3. 将结果作为名称-值对写入 stdout 中。

  4. 以适当的退出状态退出。

RCM 守护进程每次运行一个脚本实例。因此,如果某一脚本正在运行,则在该脚本退出之前,RCM 守护进程不会运行该脚本的其他实例。

RCM 脚本命令

    必须在 RCM 脚本中包含以下 RCM 命令:

  • scriptinfo-收集脚本信息

  • register-注册重要资源

  • resourceinfo-收集资源信息

    可以包括以下某些或所有 RCM 命令:

  • queryremove-查询是否可以释放资源

  • preremove-释放资源

  • postremove-提供资源移除后的通知

  • undoremove-撤消在 preremove 中执行的操作

有关这些 RCM 命令的完整说明,请参见 rcmscript(4) 手册页。

    动态移除设备时,RCM 守护进程将运行以下命令:

  • 脚本的 register 命令,用于收集脚本中标识的资源(设备名称)的列表。

  • 脚本的 queryremovepreremove 命令,在移除资源之前运行,前提是脚本的已注册资源受到动态移除操作的影响。

  • 脚本的 postremove 命令,前提是移除操作成功。但是,如果移除操作失败,RCM 守护进程会运行该脚本的 undoremove 命令。

RCM 脚本目录

下表显示了可存储 RCM 脚本的位置。

表 2-3  RCM 脚本目录
目录位置
脚本类型
/etc/rcm/scripts
特定系统的脚本
/usr/platform/`uname -i`/lib/rcm/scripts
特定硬件实现的脚本
/usr/platform/`uname -m`/lib/rcm/scripts
特定硬件类的脚本
/usr/lib/rcm/scripts
任何硬件的脚本