4.1 TUXEDO提供的系统管理工具
当一个TUXEDO应用系统投入运行时,TUXEDO系统管理员要对它进行监控,管理,根据系统的运行情况做相应的参数调整。有时候还要动态修改配置,发布新的服务等等,TUXEDO提供了很丰富的管理工具和管理编程接口。可以很方便的完成这些管理任务。下面对管理工具和管理编程接口分别进行介绍。
TUXEDO提供以下管理工具
1.基于WEB的图形化管理工具:用普通的 WEB 浏览器比如Netscape或Microsoft 的 Explorer可以从Internet/Intranet 的任意一 个节点来运行该图形界面管理工具。对
系统进行管理配置。
2. 基于字符界面的管理工具:TUXEDO提供TMADMIN,DMADMIN等命令行管理工具。
TUXEDO提供以下管理编程接口
1. MIB编程接口:TUXEDO 提供C 语言的管理API ,用户能够用此编写出适合自己特殊需
求的管理工具
2. 通过SNMP与其他管理工具(HP OpenView 等)互联, TUXEDO 的关联产品 BEA MANAGER
通过网络管理协议 SNMP和TUXEDO 的管理信息库 MIB 可以把TUXEDO 对应用程序的管 理集成到一般的网络、 数据库系统管理工具中,比如 OpenView, NetView 等。
TUXEDO应用系统的管理任务
通过以上的管理工具,TUXEDO可以有效地管理消息流程和服务请求,启动和停止服务进程,根据变化的负荷复制服务进程,动态地广播、撤消服务进程中的服务。并且可以在客户不用退出执行的情况下,动态的增加新的服务器、服务器组、服务器以及服务。利用命令行或图形管理界面TUXEDO还可以动态的进行负载平衡,数据依赖路由、网络用户的管理、队列的管理、存取资源管理器以及系统的启动、重启和恢复。
4.2 TUXEDO应用系统的启动和关闭
TUXEDO应用系统的启动 在UNIX平台上,只有该TUXEDO应用系统的管理员或超级用户可以执行启动命令tmboot。tmboot 只能在MASTER服务器上执行,或在BACKUP服务器上指定-b参数运行。可用它启动一个TUXEDO应用系统或该应用系统的一部分(如:某个GROUP或某个SERVER)。该命令有很多参数,它的用法如下,
tmboot [-w(ait)] [-n(oexec)] [-q(uiet)] [-y] [-c(heck)] [-d1] [{-A | -B loc | -M}] [{-S | [-l lmid] | -s aout | [-g grpname | -i srvid | -g grpname -i srvid]]}]
[-o sequence-#] [-T group-name] [-E envlabel] [-e errcmd]
如果tmboot不指定任何参数,那么它将启动所有的管理进程,在UBBCONFIG中的SERVERS中定义的所有的SERVER进程,在GROUPS中定义的TMS进程。 参数说明: -l lmid
启动在服务器的逻辑名为LMID的服务器上的所有进程 -g grpname
启动GROUP名为grpname中的所有进程 -i srvid
启动SRVID为srvid的服务进程 -s aout
启动名为AOUT的服务进程 -o sequence
启动SEQUENCE= sequence的服务进程 -S
启动SERVERS节中定义的所有服务进程 -A
启动所有的管理进程 -b
在没有把BACKUP服务器变为MASTER服务器的情况下,从BACKUP服务器上启
动整个TUXEDO应用系统 -B lmid
在服务器的逻辑名为lmid.的服务器上启动BBL进程 -M
在MASTER服务器上启动在该服务器上的所有管理进程。 如果该TUXEDO应用系统是SHM模式,则启动BBL进程
如果该TUXEDO应用系统是MP模式,则启动DBBL,BBL,BRIDGE进程 -d1
把服务进程启动时的命令行参数显示出来,一般在用sdb等调试工具调试服务进程 时使用 -T grpname
启动GROUP名字为rpname中的所有TMS进程 -e command
如果某个进程启动失败,执行command参数指定的命令,该命令可以时一个可执行程序,
SHELL脚本等 -y
对启动该TUXEDO应用系统的所有进程的提示回答YES -c
计算该TUXEDO应用系统在运行时对IPC资源的最小需求并输出
如果一个TUXEDO应用启动失败,可能的原因有:
1. MAXACCESSES,MAXSERVERS,MAXSERVICES参数的值太大,超过了系统的IPC
资源的限制,可减少它们的值在重试。
2. 在该TUXEDO应用系统中要用到TLOG,当该TLOG文件还没有创建,应该先创建该
TLOG文件。
3. 在UBBCONFIG中指定的IPCKEY的值与其他系统的值冲突。可改变IPCKEY的值再
试一下。
TUXEDO应用系统的关闭
在UNIX平台上,只有该TUXEDO应用系统的管理员或超级用户可以执行该命令。tmshutdown 只能在MASTER服务器上执行,或指定-P参数。可用它启动一个TUXEDO应用系统或该应用系统的一部分(如:某个GROUP或某个SERVER)。该命令有很多参数,它的用法如下:
tmshutdown [{-wdelay|-k {TERM|KILL}}] [-n(oexec)] [-q(uiet)] [-y] [-c(lt_ ign)]
[{-A | -B loc | -M}] [{-S | [-l lmid] | -s aout | [-g grpname | -i srvid | -g grpname -i srvid]]}]
[-o sequence-#] [-T group-name] [-E envlabel][-R(elocate)] [-H
lmid] [-P lmid]
如果tmshutdown不指定任何参数,那么它将关闭所有的管理进程,在UBBCONFIG中的SERVERS中定义的所有的SERVER进程,在GROUPS中定义的TMS进程。 参数说明: -l lmid
关闭在服务器的逻辑名为LMID的服务器上的所有进程 -g grpname
关闭GROUP名为grpname中的所有进程 -i srvid
关闭SRVID为srvid的服务进程 -s aout
关闭名为AOUT的服务进程 -o sequence
关闭SEQUENCE= sequence的服务进程 -S
关闭SERVERS节中定义的所有服务进程 -A
关闭所有的管理进程 -B lmid
在服务器的逻辑名为lmid。的服务器上关闭BBL进程 -M
在MASTER服务器上关闭在该服务器上的所有管理进程。 如果该TUXEDO应用系统是SHM模式,则关闭BBL进程
如果该TUXEDO应用系统是MP模式,则关闭DBBL,BBL,BRIDGE进程 -T grpname
关闭GROUP名字为rpname中的所有TMS进程 -y
对关闭该TUXEDO应用系统的所有进程的提示回答YES -w delay
立即挂起所以要关闭的SERVER,并在过了delay秒之后马上关闭这些服务进程。系统将
给这些服务进程先发送SIGTERM信号,然后发送SIGKILL信号。因为SIGKILL信号不能 被捕捉,所以这些服务进程马上死掉退出。不管该进程当前所做的操作,如果该进程当前正在对BB进行操作,可能会破坏BB的结构 -k {TERM | KILL}
立即挂起所以要关闭的SERVER,系统将给这些服务进程先发送SIGTERM信号或发送
SIGKILL信号关闭这些服务进程。因为SIGKILL信号不能被捕捉,所以这些服务进程马上 死掉退出。不管该进程当前所做的操作,如果该进程当前正在对BB进行操作,可能会破 坏BB的结构。如果是发送SIGTERM信号,则是执行正常的关闭。 -R
只有在进行系统迁移时才用到,必须和-l 或 -g一起使用,关闭指定的服务进程但不把 它从BB中删除。 -c
管理BBL进程,即使现在有客户端与该TUXEDO应用系统连接 -P lmid 在lmid指定的机器上执行该命令,把该服务器从整个TUXEDO应用系统中分离出去。
如果该UNIX平台上,TUXEDO应用服务器出了很严重的错误,无法正常管理该TUXEDO应用系统,可用下面的脚本把该TUXEDO系统管理员用户所拥有的IPC资源全部清空,这样就可以把该TUXEDO应用系统关闭,名为rmipc的脚本内容如下 ipcrm `ipcs |grep $1 |awk '{print \"-\" $1 \" \" $2}'`
如果TUXEDOO系统管理员用户名为tuxedo,用下面的命令执行 rmipc tuxedo
4.3 用Tmadmin管理TUXEDO应用系统
tmadmin是TUXEDO提供的一个命令行管理工具,可用它对TUXEDO应用系统进行监控,管理,动态修改配置等操作。 它的使用分3种情况:
1. 当TUXEDO应用系统已启动时,可以使用所有的命令,
2. 当TUXEDO应用系统没有启动时,但有TUXCONFIG文件存在时,可以使用部分命令 3. 当TUXEDO应用系统没有启动时,TUXCONFIG文件也不存在时,可以使用更少的命令
使用方法:在UNIX平台下,直接执行tmadmin,在NT下,要在DOS方式下,执行tmadmin。 执行tmadmin后,进入如下所示的界面,可直接在>后输入TMADMIN的提供命令进行各种操作。
D:\uxdemo\\conn>tmadmin
tmadmin - Copyright (c) 1996 BEA Systems, Inc.
Portions * Copyright 1986-1997 RSA Data Security, Inc. All Rights Reserved.
Distributed under license by BEA Systems, Inc. TUXEDO is a registered trademark.
No bulletin board exists. Entering boot mode. >
常用的命令有: 1.辅助类命令
help 会显示所有的操作命令的描述 > help
aborttrans (abort) [-yes] [-g groupname] tranindex
advertise (adv) {-q qaddress [-g groupname] [-i srvid] | -g groupname -i srvid} service[:func] bbclean (bbc) machine bbinternals (bbi) 。。。。。。
help 命令名,显示该操作命令的帮助。 如显示命令crlog的帮助: > help crlog
crlog (crlg) -m machine -----------------------
Creates the DTP transaction log for the named or default machine.
verbose: 要不要显示更详细的信息 > verbose
verbose now off.
page: 要不要分页显示 > page
Pagination now off.
2.查询类命令
psr 命令会显示该系统所有的SERVER的信息
> psr
Prog Name Queue Name Grp Name ID RqDone Load Done Current Service --------- ---------- -------- -- ------ --------- ---------------
BBL.exe 123456 simple 0 0 0 ( IDLE ) call.exe 00001.00002 GROUP1 2 0 0 ( IDLE ) WSL.exe 00001.01116 GROUP1 1116 0 0 ( IDLE )
RqDone:该SERVER当前已接受的请求数
Load Done: RqDone*负载因子(负载因子的默认值为50)
Current Service:当前在处理CLIENT端请求的SERVICE,如果都没有为IDLE
psc 命令会显示该系统所有的SERVICE的信息 >psc
Service Name Routine Name Prog Name Grp Name ID Machine # Done Status ------------ ------------ --------- -------- -- ------- ------ ------
CALL CALL call.exe GROUP1 2 simple 96 AVAIL
Done:该SERICE当前已接受的请求数,如在上面的例子中,SERVCIE:CALL已被调用了96次 Status: 该SERVICE当前所处的状态.
pq 命令会显示该系统的队列情况 > pq
Prog Name Queue Name # Serve Wk Queued # Queued Ave. Len Machine --------- ------------------- --------- -------- -------- -------
simpserv.exe simpserv 10 550 11 10.1 simple BBL.exe 123456 1 0 0 0.0 simple WSL.exe 00001.00112 1 0 0 0.0 simple
queued: 当前队列中还没有处理的请求数
wk queued = queued*负载因子(负载因子的默认值为50)
pclt:当前连接到该TUXEDO应用系统的客户端的状态
> pclt
LMID User Name Client Name Time Status Bgn/Cmmt/Abrt --------------- --------------- --------------- -------- ------- -------------
simple NT WSH 0:16:39 IDLE 0/0/0 simple NT WSH 0:16:39 IDLE 0/0/0 simple NT tmadmin 0:15:46 IDLE 0/0/0
LMID: TUXEDO服务器的逻辑名 User Name:CLIENT端的User Name
Client Name: CLIENT端的Client Name Time:该CLIENT已连接的时间 Status:该CLIENT当前的状态
Bgn/Cmmt/Abrt: 到现在为止,该CLIENT已发起,提交,回滚的事务数.
3.动态修改配置:
suspend:可以把某个GROUP,SERVER的SERVICE或某个SERVICE挂起 > suspend -s TOUPPER
Service TOUPPER suspended on 1 queue.
resume: 可以把已挂起的某个GROUP,SERVER的SERVICE或某个SERVICE重新投入
可用
> resume -s TOUPPER
Service TOUPPER resumed (un-suspended) on 1 queue.
Adv: 可以发布某个SERVICE > adv -g GROUP1 -i 2 CALL
CALL advertised on 1 server on queue 00001.00002.
Unadv: 取消某个SERVICE的发布 > unadv -g GROUP1 -i 2 CALL CALL removed from 1 server.
changeload:可以修改某个SERVICE的负载因子 > changeload -g GROUP1 -i 2 -s CALL 40 1 entry changed.
changepriority 可以修改某个SERVICE的优先级. > changepriority -g GROUP1 -i 2 -s CALL 80 1 entry changed.
管理类的命令:
bbclean (bbc) [machine]:
当BBL进行定时检测时,它会自动把死掉的SERVER进程所占用的资源释放掉,如果该SERVER可以重起,那么BBL会重启该SERVER。
如果要手工进行这种操作,可以用bbclean (bbc) [machine]命令。
如果不指定服务器名machine,默认为当前服务器,如果时在DBBL所在的服务器上进行该操作,那么是对该系统中所有的服务器进行该操作。
pclean (pcl) machine
清空某台服务器上的资源,如果machine参数必须指定,
如果该服务器没有被分离出去(PARTITIONED)那么它同bbclean 命令的效果一样。
如果该服务器已被分离出去(PARTITIONED)那么该操作把machine参数指定的服务器从没有被分离出去(NON-PARTITIONED)的服务器上的BB中清除。
broadcast [-m machine] [-u username] [-c cltname] [text]
该某一个或某一些类型的用户发消息.如下面的命令给所有的CLIENT发消息:\"the tuxedo will shutdown in 3 minute\"
broadcast \"the tuxedo will shutdown in 3 minute\"
master (m) [-yes]
在某台服务器上的TMADMIN中执行该命令,将使该服务器成为MASTER服务器。
如果MASTER服务器因出错被分离出去(PARTITIONED),可在BACKUP服务器上执行该命令,使该BACKUP服务器成为MASTER服务器.会在该服务器上启动DBBL,该TUXEDO应用系统也可以继续运行下去。当原来的MASTER服务器已正确恢复,可在原来的MASTER服务器上执行该命令,会使它重新成为MASTER服务器.DBBL会从BACKUP服务器上迁移到该服务器上。
reconnect (rco) non-partitioned_machine1 partitioned_machine2.
如果因网络故障使某台服务器被被分离出去(PARTITIONED),BRIDGE 进程会自动与该TUXEDO应用系统中的其他服务器进行重新连接,如果重新连接失败,那么可以用该命令与该TUXEDO应用系统中的其他服务器进行重连。
4.4 用图形化管理工具管理TUXEDO应用系统
启动图形化管理工具的方法:
在使用TUXEDO的基于WEB的图形化管理工具时,要先启动两个进程,tuxwsvr和wlisten。 Tuxwsvr的-l参数指定该进程的侦听端口,-i参数指定它的图形化管理配置文件路径。 Wlisten:-i参数指定它的图形化管理配置文件路径. 例子:
1. tuxwsvr -l //127.0.0.1:9999 -i d:\uxedo65\obj\uxwsvr.ini 3. wlisten -i d:\uxedo65\obj\\webgui\\webgui.ini
4. 在IE中输入地址: http://127.0.0.1:9999/webguitop.html 5. 在出现的页面中点击下面的按钮:
6. 在出现的页面中输入在安装TUXEDO时输入的TLISTEN密码,该密码保存在文件
$TUXDIR/UDATAOBJ/tlisten.pw中.
7. 如果密码正确,会显示
TUXEDO的图形化管理工具如下
在图形化界面中做管理
TUXEDO应用系统的管理是以域(DOMAIN)为单位的,一个TUXEDO应用系统就是一个DOMAIN,所以先要打开或创建一个DOMAIN,然后在该图形化界面中对它做各种管理操作。
打开一个DOMAIN的方法:
在DOMAIN菜单下选择OPEN,会出现如下界面,输入要管理的DOMAIN的DOMAIN ID及该DOMAIN的配置文件路径。
如果输入正确就进入如下的界面,可在该界面种进行各种管理配置工作,具体的操作我们不介绍,请参考TUXEDO的联机文档。
4.5 动态改变TUXEDO应用系统的配置
如果一个TUXEDO应用系统已在运行,这时如果修改了UBBCONFIG中的配置,要把它编译成TUXCONFIG时会提示:
D:\uxdemo\\conn>tmloadcf -y ubbsimple
CMDTUX_CAT:883: ERROR: tmloadcf cannot run on an active node 即:不能在TUXEDO应用系统已运行的时候,编译配置文件,
在开发阶段,可以把该TUXEDO应用系统先停下来,再执行TMLOADCF操作,然后重新启动该TUXEDO应用系统,使对UBBCONFIG的修改生效,
但如果是在一个生产系统中,一般是不允许停机的,这时如果要对TUXEDO应用系统的配置进行修改,如发布新的服务等,只能通过别的办法,主要的方法有以下三种:
1、 用TMCONFIG命令
在TUXEDO中提供了TMCONFIG命令,用于动态修改TUXEDO应用系统的配置。它的使用方法如下:
1.设置环境变量EDITOR: set EDITOR=C:\\WINNT\\NOTEPAD.EXE 2.在DOS方式下执D:\uxdemo\\conn>tmconfig
Section: 1) RESOURCES, 2) MACHINES, 3) GROUPS 4) SERVERS 5)SERVICES 6) NETWORK 7) ROUTING q) QUIT 9) WSL 10) NETGROUPS 11) NETMAPS [1]: 4 3.如果要对SERVER节进行操作,选择4
4.在要进行的操作种选择4
Operation: 1) FIRST 2) NEXT 3) RETRIEVE 4) ADD 5) UPDATE 6) CLEAR BUFFER 7) QUIT [1]: 4
5.在提示是否进文本编辑器进行编辑时,选择Y Enter editor to add/modify fields [n]? y
6. 在文本编辑器种输入(这些属性的含义请参考TUXEDO的联机文档): TA_SERVERNAME D:\\\\TUXDEMO\\\\SIMPAPP\\\\simperv.exe TA_SRVGRP GROUP1 TA_SRVID 66
7.保存并关闭该文本编辑器
8.在下面的提示种选择Y,使改变生效. Perform operation [y]? y Return value TAUPDATED Buffer contents:
TA_OPERATION 4 TA_SECTION 3
TA_STATUS Update completed successfully
TA_OCCURS 1 TA_BASESRVID 66 TA_GRACE 86400 TA_GRPNO 1 TA_MAX 1
TA_MAXGEN 1 TA_MIN 1
TA_RPPERM 438 TA_RQPERM 438 TA_SEQUENCE 10006 TA_SRVID 66
TA_STATE INACTIVE TA_CLOPT -A TA_CONV N TA_ENVFILE TA_RCMD
TA_REPLYQ N TA_RESTART N
TA_RQADDR 00001.00066
TA_SERVERNAME D:\\\\TUXDEMO\\\\SIMPAPP\\\\simpserv.exe TA_SYSTEM_ACCESS FASTPATH TA_SRVGRP GROUP1
9. 如果TA_STATE为INACTIVE,可选择4
Section: 1) RESOURCES, 2) MACHINES, 3) GROUPS 4) SERVERS 5)SERVICES 6) NETWORK 7) ROUTING q) QUIT 9) WSL 10) NETGROUPS 11) NETMAPS [4]: 4
10.选择5,对配置进行修改
Operation: 1) FIRST 2) NEXT 3) RETRIEVE 4) ADD 5) UPDATE 6) CLEAR BUFFER 7) QUIT [4]: 5
11. 在提示是否进文本编辑器进行编辑时,选择Y Enter editor to add/modify fields [n]? y
12. 在文本编辑器把INACTIVE改为ACTIVE,保存修改并退出该文本编辑器
13.在下面的提示种选择Y,使改变生效. Perform operation [y]? y Return value TAUPDATED Buffer contents:
TA_OPERATION 5
TA_SECTION 3
TA_STATUS Update completed successfully TA_OCCURS 1 TA_BASESRVID 66 TA_GRACE 86400 TA_GRPNO 1 TA_MAX 1
TA_MAXGEN 1 TA_MIN 1
TA_RPPERM 438 TA_RQPERM 438 TA_SEQUENCE 10006 TA_SRVID 66
TA_STATE ACTIVE TA_CLOPT -A TA_CONV N TA_ENVFILE TA_RCMD
TA_REPLYQ N TA_RESTART N
TA_RQADDR 00001.00066
TA_SERVERNAME D:\\\\TUXDEMO\\\\conn\\\\simpserv.exe TA_SYSTEM_ACCESS FASTPATH TA_SRVGRP GROUP1
14.选择q退出
Section: 1) RESOURCES, 2) MACHINES, 3) GROUPS 4) SERVERS 5)SERVICES 6) NETWORK 7) ROUTING q) QUIT 9) WSL 10) NETGROUPS 11) NETMAPS [4]: q
15.如果要把修改保存到UBBCONFIG文件中,在下面的提示中输入UBBCONFIG的文件名. Unload TUXCONFIG file into backup UBB [y]? n
到此,就通过tmconfig动态增加了一个SERVER.
2、 通过图形化管理工具
具体的操作方法,请参考TUXEDO的联机文档。
3、如果时在UNIX平台下,可以这么做: 1. 修改UBBCONFIG,
2. 把TUXCONFIG文件删除或改名
3. 用TMLOADCF –y UBBCONFIG把UBBCONFIG编译成TUXCONFIG 4. TMBOOT –y 重起该TUXEDO应用系统,新的配置可以自动生效。
注意:这种方法不是对所有的修改都可以,如把原来不是MSSQ的改为MSSQ,就无法
通过这种方式
4.6 TUXEDO的文件系统
TUXEDO的文件系统简介
TUXEDO用自己的文件系统管理二进制配置文件TUXCONFIG,BDMCONFIG,全局事务日志文件TLOG,以及QUEUE SPACE。
一个TUXEDO文件系统有一个VTOC(VOLUME TABLE OF CONTENTS),它记录存在于在UDL(UNIVERSAL DEVICE LIST)中登记的设备上的文件.UDL中包含TUXEDO文件系统中每个设备的物理存储位置及大小等信息.
一个TUXEDO文件系统中可以有多个设备(DEVICE),每个设备对应一个文件.在UDL中对应一条记录.
TUXCONFIG,TLOG在TUXEDO文件系统中都是一个设备,所有的QUEUE SPACE也对应一个设备.
注意: 在这里设备实际就是文件.
TUXEDO文件系统的创建,管理
TUXEDO在TMADMIN中或图形化管理工具中创建,管理文件系统,下面对这些命令进行介绍:
lidl -z device_name [devindx]:
显示一个设备的UDL(universal device list)的内容
-z device_name:为该设备的名字,也就是一个文件名.它可在环境变量FSCONFIG中设置,
> lidl -z d:\\qsample\uxconfig universal device index 0:
name: d:\\qsample\uxconfig start: 0 size: 3624
free space map: 1 entry used 47 available
livtoc (livtoc) -z device_name
显示一个设备的VTOC(VOLUME TABLE OF CONTENTS)的内容 > livtoc -z d:\\qsample\uxconfig
Volume Table of Contents on d:\\qsample\uxconfig:
0: VTOC: Device 0 Offset 0 Pages 7 1: UDL: Device 0 Offset 7 Pages 28 2: _RESOURCE_SECT: Device 0 Offset 35 Pages 3 3: _MACHINES_SECT: Device 0 Offset 38 Pages 40 4: _GROUPS_SECT: Device 0 Offset 78 Pages 40 5: _SERVERS_SECT: Device 0 Offset 118 Pages 40 6: _SERVICES_SECT: Device 0 Offset 158 Pages 20 7: _ROUTING_SECT: Device 0 Offset 178 Pages 100 8: _NETWORK_SECT: Device 0 Offset 278 Pages 20 9: _MIBPERMS_SECT: Device 0 Offset 298 Pages 2 10: _NETGROUPS_SECT: Device 0 Offset 300 Pages 2
> livtoc –z d:\\qsample\\QUE
Volume Table of Contents on d:\\qsample\\QUE:
0: VTOC: Device 0 Offset 0 Pages 7
1: UDL: Device 0 Offset 7 Pages 28 2: QSPACE.00: Device 0 Offset 35 Pages 3000
crdl [-z devicename] [-b blocks] 创建一个设备文件(DEVICE LIST)
devicename:为该设备的名字,也就是一个文件名.
blocks:该设备的大小,默认为1000,单位为块(BLOCK) 如:crdl d:\\qsample\\QUE 0 5000
initdl [-z devicename] [-yes] devindx 重新初始化一个设备文件的内容.
dsdl [-z devicename] [yes] [devindx] 删除一个设备文件
因篇幅问题不能全部显示,请点此查看更多更全内容