Current File : //usr/man/zh_CN.UTF-8/man1m/syseventadm.1m
'\" te
.\" Copyright (c) 2004, 2012, Oracle and/or its affiliates.All rights reserved.
.TH syseventadm 1M "2012 年 5 月 22 日" "SunOS 5.11" "系统管理命令"
.SH 名称
syseventadm \- 管理 sysevent 事件指定
.SH 用法概要
.LP
.nf
\fBsyseventadm\fR add [\fB-R\fR \fIrootdir\fR] [\fB-v\fR \fIvendor\fR] [\fB-p\fR \fIpublisher\fR] 
     [\fB-c\fR \fIclass\fR] [\fB-s\fR \fIsubclass\fR] [\fB-u\fR \fIusername\fR] \fIpath\fR [\fIargs\fR]
.fi

.LP
.nf
\fBsyseventadm\fR remove [\fB-R\fR \fIrootdir\fR] [\fB-v\fR \fIvendor\fR] [\fB-p\fR \fIpublisher\fR] 
     [\fB-c\fR \fIclass\fR] [\fB-s\fR \fIsubclass\fR] [\fB-u\fR \fIusername\fR] [\fIpath\fR [\fIargs\fR]]
.fi

.LP
.nf
\fBsyseventadm\fR list [\fB-R\fR \fIrootdir\fR] [\fB-v\fR \fIvendor\fR] [\fB-p\fR \fIpublisher\fR] 
     [\fB-c\fR \fIclass\fR] [\fB-s\fR \fIsubclass\fR] [\fB-u\fR \fIusername\fR] [\fIpath\fR [\fIargs\fR]]
.fi

.LP
.nf
\fBsyseventadm\fR restart
.fi

.SH 描述
.sp
.LP
\fBsyseventadm\fR 命令是用于添加、删除和列出 \fBsysevent\fR 事件处理程序的管理性前端。您还可以通过使用 restart 命令来重新启动 sysevent 守护进程。\fBsyseventadm\fR 只能由 root 用户运行。
.sp
.LP
\fBsyseventadm\fR \fBadd\fR 命令可为由供应商、发布者或类中至少一项指定的 \fBsysevent\fR 事件添加处理程序。如果指定 \fIclass\fR,可以通过 \fIsub-class\fR 对其进行限定。只会将添加处理程序时为 \fIvendor\fR、\fIpublisher\fR、\fIclass\fR 和 \fIsub-class\fR 指定的值与 \fBsysevent\fR 事件进行匹配,以确定指定值是否与事件匹配以及是否应运行处理程序。\fIpath\fR 是响应匹配事件而运行的命令的全路径名,带有可选参数 (\fIargs\fR)。如果指定用户名,则以用户 \fIusername\fR 的身份调用该命令,否则以 root 用户身份调用该命令。
.sp
.LP
\fBsyseventadm\fR \fBremove\fR 命令可删除匹配的 sysevent 事件指定的处理程序。可以通过指定 \fIvendor\fR、\fIpublisher\fR、\fIclass\fR、\fIusername\fR 或 \fIpath\fR 中的至少一项来匹配事件指定。如果指定 \fIclass\fR,可以通过 \fIsub-class\fR 对其进行限定。任何未指定的 \fIvendor\fR、\fIpublisher\fR、\fIclass\fR、\fIsub-class\fR、\fIusername\fR、\fIpath\fR 或 \fIargs\fR 均与所有事件的相应字段匹配。所有匹配指定的处理程序都将被删除。 
.sp
.LP
\fBsyseventadm\fR \fBlist\fR 命令可列出匹配的 \fBsysevent\fR 事件指定的处理程序,所采用的匹配条件与 \fBremove\fR 命令相同,只是不要求至少指定 \fIvendor\fR、\fIpublisher\fR、\fIclass\fR、\fIusername\fR 或 \fIpath\fR 中的一项。不指定匹配条件时,将列出所有指定。list 命令的输出格式为:[vendor=\fIvendor\fR] [publisher=\fI publisher\fR] [class=\fIclass\fR] [subclass=\fIsubclass\fR] [username=\fIusername\fR] \fIpath\fR [\fIargs\fR],其中各个 \fIclass\fR、\fIsub-class\fR、\fIvendor\fR、\fIpublisher\fR 和 \fIusername\fR 仅在属于所列出指定的匹配条件时才会列出。 
.sp
.LP
在通过添加或删除一个或多个 \fBsysevent\fR 处理程序指定而做了更改后,\fBsyseventadm\fR \fBrestart\fR 命令通知 \fBsyseventd\fR 守护进程重新读取 \fBsysevent\fR 注册表。 
.SS "参数宏替换"
.sp
.LP
\fBsysevent\fR 处理工具提供大量宏功能,用于构造为响应事件而执行的命令行参数。宏扩展仅适用于为事件处理程序指定的命令行 \fIargs\fR,扩展宏时使用的数据来自事件本身。系统为事件的 \fIclass\fR、\fIsubclass\fR、\fIpublisher\fR 和 \fIvendor\fR 信息提供了预定义的宏。如果宏与预定义的宏名称之一不匹配,将搜索附加到事件的属性列表以查找使用该名称的属性,并在命令行上替换匹配属性的值。
.sp
.LP
宏由 \fB$\fR 字符引入,宏名称为由空格或制表符字符分隔的以下标记。如果宏名称嵌入到文本中,可由 \fB${\fR 和 \fB}\fR 将其标识出来。\fB$\fR 前有 \fB\\fR 时宏不会扩展。 
.sp
.ne 2
.mk
.na
\fB$\fIclass\fR\fR
.ad
.RS 14n
.rt  
定义事件的类字符串
.RE

.sp
.ne 2
.mk
.na
\fB$\fIpublisher\fR\fR
.ad
.RS 14n
.rt  
定义事件的发布者字符串
.RE

.sp
.ne 2
.mk
.na
\fB$\fIsequence\fR\fR
.ad
.RS 14n
.rt  
事件的序列号
.RE

.sp
.ne 2
.mk
.na
\fB$\fIsubclass\fR\fR
.ad
.RS 14n
.rt  
定义事件的子类字符串
.RE

.sp
.ne 2
.mk
.na
\fB$\fItimestamp\fR\fR
.ad
.RS 14n
.rt  
事件的时间戳
.RE

.sp
.ne 2
.mk
.na
\fB$\fIvendor\fR\fR
.ad
.RS 14n
.rt  
定义事件的供应商字符串
.RE

.sp
.LP
不在预定义范围内的宏名称将与随事件提供的属性列表进行比较。属性的名称与宏名称匹配时,在生成的命令行上将使用 \fBASCII\fR 文本替换该属性的值。 
.sp
.LP
如果没有为使用的宏定义同名属性或提供了多个同名的属性,将发生错误,不会调用该命令。 
.sp
.LP
具有带符号数据类型(\fBDATA_TYPE_INT16\fR、\fBDATA_TYPE_INT32\fR 和 \fBDATA_TYPE_INT64\fR)的属性将扩展为十进制数字。 
.sp
.LP
具有无符号数据类型(\fBDATA_TYPE_BYTE\fR、\fBDATA_TYPE_UINT16\fR、\fBDATA_TYPE_UINT32\fR、\fBDATA_TYPE_UINT64\fR 和 \fBDATA_TYPE_HTTIME\fR)的属性将扩展为带 \fB0x\fR 前缀的十六进制数字。 
.sp
.LP
具有字符串数据类型 (\fBDATA_TYPE_STRING\fR) 的属性将通过字符串数据进行扩展。该数据不带引号。如果需要在命令行上生成带引号的字符串,请在参数中的宏调用两侧加引号。 
.sp
.LP
扩展数组类型时,每个元素都会按照该标量类型的定义进行扩展,用空格分隔每个替换的元素。 
.SH 选项
.sp
.LP
\fBadd\fR、\fBlist\fR 和 \fBremove\fR 子命令支持以下选项:
.sp
.ne 2
.mk
.na
\fB\fB-c\fR \fIclass\fR\fR
.ad
.RS 16n
.rt  
指定事件类 \fIclass\fR。
.RE

.sp
.ne 2
.mk
.na
\fB\fB-p\fR \fIpublisher\fR\fR
.ad
.RS 16n
.rt  
指定事件发布者 \fIpublisher\fR。
.RE

.sp
.ne 2
.mk
.na
\fB\fB-R\fR \fIrootdir\fR\fR
.ad
.RS 16n
.rt  
指定备用根路径 \fIrootdir\fR。
.LP
注 - 
.sp
.RS 2
不得使用 \fB-R\fR 选项引用任何非全局区域的根文件系统。否则,可能会损坏全局区域的文件系统,危及全局区域的安全性,或者损坏非全局区域的文件系统。请参见 \fBzones\fR(5)。
.RE
.RE

.sp
.ne 2
.mk
.na
\fB\fB-s\fR \fIsubclass\fR\fR
.ad
.RS 16n
.rt  
指定事件子类 \fIsubclass\fR。
.RE

.sp
.ne 2
.mk
.na
\fB\fB-u\fR \fIusername\fR\fR
.ad
.RS 16n
.rt  
指定用于调用命令的用户名 (\fIusername\fR)。
.RE

.sp
.ne 2
.mk
.na
\fB\fB-v\fR \fIvendor\fR\fR
.ad
.RS 16n
.rt  
指定定义事件的供应商 (\fIvendor\fR)。由第三方软件定义的事件应指定该公司的股票代码作为 \fIvendor\fR。Oracle 定义的事件使用 \fBSUNW\fR。
.RE

.SH 操作数
.sp
.LP
\fBadd\fR、\fBlist\fR 和 \fBremove\fR 子命令支持以下选项:
.sp
.ne 2
.mk
.na
\fB\fIargs\fR\fR
.ad
.RS 8n
.rt  
命令参数
.RE

.sp
.ne 2
.mk
.na
\fB\fIpath\fR\fR
.ad
.RS 8n
.rt  
为响应事件而运行的命令的完整路径。
.RE

.SH 示例
.LP
\fB示例 1 \fR添加事件处理程序
.sp
.LP
以下示例为由供应商 \fBMYCO\fR (“My Company”)、类 \fBEC_ENV\fR 和子类 \fBESC_ENV_TEMP\fR 定义的事件添加事件处理程序。要运行的命令是 \fB/opt/MYCOenv/bin/ec_env_temp\fR,参数是从事件属性中得到的类名称、子类名称和路径名。\fB$\fR 字符前面有一个反斜杠,以规避 shell 解释。由于注册表在 \fB$ALTROOT\fR 上维护,因此更改后无需重新启动服务。 

.sp
.in +2
.nf
# syseventadm add -R \eALTROOT -v MYCO -c EC_ENV -s ESC_ENV_TEMP \e
     /opt/MYCOenv/bin/ec_env_temp \e$class \e$subclass \e$pathname
.fi
.in -2
.sp

.sp
.LP
注意上述 \fB-R\fR 选项说明中有关使用该选项的警告。

.LP
\fB示例 2 \fR删除事件处理程序
.sp
.LP
以下示例将删除示例 1 中添加的事件处理程序。

.sp
.in +2
.nf
# syseventadm remove -R \eALTROOT -v MYCO -c EC_ENV -s ESC_ENV_TEMP \e
     /opt/MYCOenv/bin/ec_env_temp \eclass} \esubclass} \epathname}
.fi
.in -2
.sp

.sp
.LP
注意上述 \fB-R\fR 选项说明中有关使用该选项的警告。

.LP
\fB示例 3 \fR列出事件处理程序
.sp
.LP
以下示例为由供应商 \fBMYCO\fR 定义的类为 \fBEC_ENV\fR、子类为 \fBESC_ENV_TEMP\fR 的事件列出所有事件处理程序: 

.sp
.in +2
.nf
# syseventadm list -v MYCO -c EC_ENV -s ESC_ENV_TEMP \e
     vendor=MYCO class=EC_ENV subclass=ESC_ENV_TEMP \e
     /opt/MYCOenv/bin/ec_env_temp \e${class} \e${subclass} \e${pathname}
.fi
.in -2
.sp

.LP
\fB示例 4 \fR列出事件处理程序
.sp
.LP
以下示例列出由供应商 \fBVRTS\fR 定义的所有事件处理程序。

.sp
.in +2
.nf
# syseventadm list -v VRTS
.fi
.in -2
.sp

.LP
\fB示例 5 \fR删除事件处理程序
.sp
.LP
以下示例删除由供应商 \fBVRTS\fR 定义的所有事件处理程序,然后重新启动服务。

.sp
.in +2
.nf
# syseventadm remove -v VRTS
# syseventadm restart
.fi
.in -2
.sp

.LP
\fB示例 6 \fR列出指定运行某个命令的所有事件处理程序
.sp
.LP
以下示例列出指定运行 \fB/opt/MYCOenv/bin/ec_env_temp\fR 命令的所有事件处理程序: 

.sp
.in +2
.nf
# syseventadm list /opt/MYCOenv/bin/ec_env_temp
.fi
.in -2
.sp

.LP
\fB示例 7 \fR删除事件处理程序并重新启动服务
.sp
.LP
以下示例删除指定运行 \fB/opt/MYCOenv/bin/ec_env_temp\fR 命令的所有事件处理程序,然后重新启动服务: 

.sp
.in +2
.nf
# syseventadm remove /opt/MYCOenv/bin/ec_env_temp
# syseventadm restart
.fi
.in -2
.sp

.SH 退出状态
.sp
.LP
将返回以下退出值:
.sp
.ne 2
.mk
.na
\fB\fB0\fR\fR
.ad
.RS 5n
.rt  
成功完成。 
.RE

.sp
.ne 2
.mk
.na
\fB\fB1\fR\fR
.ad
.RS 5n
.rt  
未找到匹配的事件指定(仅限 remove 或 list 命令)。
.RE

.sp
.ne 2
.mk
.na
\fB\fB2\fR\fR
.ad
.RS 5n
.rt  
命令用法不正确。
.RE

.sp
.ne 2
.mk
.na
\fB\fB3\fR\fR
.ad
.RS 5n
.rt  
权限被拒绝。
.RE

.sp
.ne 2
.mk
.na
\fB\fB4\fR\fR
.ad
.RS 5n
.rt  
命令失败。
.RE

.sp
.ne 2
.mk
.na
\fB\fB5\fR\fR
.ad
.RS 5n
.rt  
内存不足。
.RE

.SH 属性
.sp
.LP
有关下列属性的说明,请参见 \fBattributes\fR(5):
.sp

.sp
.TS
tab() box;
cw(2.75i) |cw(2.75i) 
lw(2.75i) |lw(2.75i) 
.
属性类型属性值
_
可用性system/core-os
.TE

.SH 另请参见
.sp
.LP
\fBsyseventd\fR(1M)、\fBsysevent_post_event\fR(3SYSEVENT)、\fBattributes\fR(5)、\fBddi_log_sysevent\fR(9F)
.SH 附注
.sp
.LP
为避免升级问题,提供 sysevent 事件处理程序的软件包应从软件包的安装后脚本运行 \fBsyseventadm\fR 来安装事件处理程序。然后,可以使用添加时所用的相同参数从软件包的删除前脚本运行 \fBsyseventadm\fR 来删除事件处理程序。