其实会有人问,为何要升级?
笔者:国际认证信息系统审计师、软考系统分析师
17.05.06版本是被定义为“Critical”级别的升级,在于移除了log4j这个组件。如果有关注网络安全,都应该知道log4j的“核弹级”漏洞的事情。所以这个版本是必须要升级的。
继上一篇《安装MegaRAID存储管理器17.05.06版的一番折腾(Windows篇)》之后,接着是在Linux环境下的折腾。如果不太了解情况的读者,可以先看看上一篇,以及更早的一篇入门级介绍:《安装 MegaRAID 存储管理器集中监控 DAS 存储状态》。
MSM这个版本在Linux环境下卸载安装的问题都比Windows版本复杂。折腾下来最大的感觉是MSM的开发人员有那么一种“反正你都用上Linux了,有问题你自己一定有能力搞定,所以我们就随便一点”的态度。
就以MSM的RPM包内容为例,把MSM的后台服务在运行时产生的DEBUG日志文件带上内容打包进去了,时间戳还是2014年;还有各种文件属性错误标记为可执行......真是无力吐槽。
所以这篇东西真的是折腾了我好久才弄出来。
那么下面介绍在 Linux 服务器环境的安装、升级和卸载,全文以CentOS 7为例。
如果要升级MSM,需要先卸载旧版本(17.05.00或更早版本)。按README,安装脚本能自动检查和卸载旧版本......实际很多问题。
那么先手工卸载?按README,用root用户运行卸载脚本uninstaller.sh即可,它会自动完成卸载......实际也是有问题。
问题后面再介绍。真正有效的卸载步骤和操作过程如下:
(1)检查是否有安装snmpd服务,如果没有,先补充安装; (2)手工停止正在运行的vivaldiframeworkd服务; (3)手工运行shutdown脚本,退出依然(!)在后台运行的java进程,注意要cd进入该目录后以sh带脚本文件名参数方式才能正常运行; (4)最后运行uninstaller.sh,完成安装。
yum install net-snmp net-snmp-utils
systemctl enable snmpd
systemctl stop vivaldiframeworkd
cd /usr/local/MegaRAID\\ Storage\\ Manager/Framework/
sh shutdown.sh
cd ..
./uninstaller.sh
解释:
(1)MSM组成部分中的sas_snmp-17.05-0003 和 sas_ir_snmp-17.05-0003两个RPM包的卸载脚本设置了从snmpd服务中取消登记的过程,如果服务器上没有安装snmpd服务,卸载过程会提示%preun脚本执行失败,sas相关两个软件包删除失败,卸载中止:
Uninstalling sas_ir_snmp-16.05-0200
Unregistering Service
Failed to start snmpd.service: Unit not found.
错误:%preun(sas_ir_snmp-16.05-0200.x86_64) 脚本执行失败,退出状态码为 5
错误:sas_ir_snmp-16.05-0200.x86_64: 删除 已失败
Uninstalling sas_snmp-16.05-0200
Unregistering Service
Failed to start snmpd.service: Unit not found.
错误:%preun(sas_snmp-16.05-0200.x86_64) 脚本执行失败,退出状态码为 5
错误:sas_snmp-16.05-0200.x86_64: 删除 已失败
绝对不能使用rpm的--noscripts参数强制忽略脚本而卸载sas相关软件包。因为卸载脚本执行的操作不仅是取消模块登记,还包括了各种配置文件和启动服务的清理,忽略脚本就会导致该清理的没有清理。
(2)如果不先行完全停止后台服务,有可能会提示有活动的客户端连接(实际并没有)而不能卸载,出错信息如下:
Uninstalling MegaRAID_Storage_Manager-16.05.04-00
Framework running
Inside loadVivaldikeyProp
localePath for res file::zh
frameworkWWN :192.168.49.51:3071:0
frameworkWWN :192.168.49.51:3071:0
System time before socket connection:Fri Jan 13 15:36:02 CST 2023
SSL_STRONG_ENCRYPTION File Name is ::./StrongSSLEncryption.ini
iniFlag isDISABLE
frameworkWWN :192.168.49.51:3071:0
LOCAL Registered client :: 127.0.0.1:0:8
LOCAL Registered client :: 127.0.0.1:49260:1
REMOTE Registered client :: 192.168.140.1:49276:4
LOCAL Registered client :: 192.168.49.51:3071:0
REMOTE Registered client :: 192.168.140.1:49263:3
LOCAL Registered client :: 127.0.0.1:49261:2
frameworkWWN :192.168.49.51:3071:0
ActiveClientList created
The machines with the following IP(s) has active Client connected to this server.
192.168.140.1
Disconnect all the connections or shutdown Framework and retry.
错误:%preun(MegaRAID_Storage_Manager-16.05.04-00.noarch) 脚本执行失败,退出状态码为 1
错误:MegaRAID_Storage_Manager-16.05.04-00.noarch: 删除 已失败
见上文提示“The machines with the following IP(s) has active Client connected to this server.”
另外,由于systemctl stop操作并未能有效调用shutdown.sh去停止后台服务,只是更改了服务的状态而已。所以要手工执行shutdown.sh脚本。
假设所有的安装材料均已经上传到服务器并放置在/root/msm目录内,如下:
[root@server ~]# ll msm
-rw-r--r--. 1 root root 47089267 2月 24 2022 17.05.06.00_MSM_Linux-x64.zip
-rw-r--r--. 1 root root 3158 1月 31 16:32 fixed_msm_scripts.tar.gz
-rw-r--r--. 1 root root 78030 1月 11 10:45 javax.activation.jar
-rw-r--r--. 1 root root 41349408 1月 12 21:46 OpenJDK8U-jre_x64_linux_hotspot_8u352b08.tar.gz
其中 fixed_msm_scripts.tar.gz 是本人对MSM的脚本修改调整后的打包文件,可以通过以下百度网盘链接下载:
链接:https://pan.baidu.com/s/1fNHo_eQ7sFw6L4VXiS-2fA?pwd=ykdg
提取码:ykdg
整个安装过程操作汇总如下:
# 确保已经安装snmpd,并启用
yum install net-snmp net-snmp-utils
systemctl enable snmpd
# 进入安装材料目录,解压安装包,其中MSM要解压两次
cd /root/msm
tar zxf fixed_msm_scripts.tar.gz
tar zxf OpenJDK8U-jre_x64_linux_hotspot_8u352b08.tar.gz
unzip 17.05.06.00_MSM_Linux-x64.zip
tar zxf MSM_linux_x64_installer-17.05.06-00.tar.gz
# javax.activation.jar放入jre的bin目录
mv javax.activation.jar jdk8u352-b08-jre/bin
# 覆盖有问题的检查删除旧版本的脚本
\\cp fixed_msm_scripts/deleteOldVersion.sh ./disk
# 直接完整安装
cd disk
./RunRPM.sh
# 检查是否后台服务已经在运行,若是,停止服务
ps aux | grep FrameworkManager
systemctl stop vivaldiframeworkd
# 再检查一次,因为服务基本上是没有停。若未停,手工执行脚本停掉服务
ps aux | grep FrameworkManager
cd /usr/local/MegaRAID\\ Storage\\ Manager/Framework/
./shutdown.sh
# 配置环境,创建符号链接避免目录名中的空格干扰
ln -s /usr/local/MegaRAID\\ Storage\\ Manager/ /usr/local/msm
# 私有化转入JRE并缩短目录名
mv /root/msm/jdk8u352-b08-jre/ /usr/local/msm/jre
chcon -u system_u -t usr_t -R /usr/local/msm/jre
# 替换脚本,实现使用私有JRE运行
cd /root/msm/fixed_msm_scripts/
\\cp msm_profile /etc/rc.d/init.d
\\cp vivaldiframeworkd /etc/rc.d/init.d
\\cp startup.sh /usr/local/msm/Framework/
\\cp shutdown.sh /usr/local/msm/Framework/
\\cp startupui.sh /usr/local/msm
# 重新加载守护进程服务信息,启动服务和检查服务状态
systemctl daemon-reload
systemctl start vivaldiframeworkd
systemctl status vivaldiframeworkd
ps aux | grep FrameworkManager
# 启动客户端,尝试发现、登录和操作
cd /usr/local/msm
./startupui.sh
# 完成后,删除/etc/profile文件中调用msm_profile的行。
sed -i '/msm_profile/d' /etc/profile
以上过程详细解释如下:
(1)如果未安装启用snmpd服务,则安装sas_snmp和sas_ir_snmp两个RPM包时都会报告如下的执行安装后脚本出错:
Installing sas_snmp-17.05-0003
Preparing... ################################# [100%]
Updating / installing...
1:sas_snmp-17.05-0003 ################################# [100%]
/etc/snmp/snmpd.conf file not found. Please check the filepath
Exiting .....
warning: %post(sas_snmp-17.05-0003.x86_64) scriptlet failed, exit status 1
Installing sas_ir_snmp-17.05-0003
Preparing... ################################# [100%]
Updating / installing...
1:sas_ir_snmp-17.05-0003 ################################# [100%]
/etc/snmp/snmpd.conf file not found. Please check the filepath
Exiting .....
warning: %post(sas_ir_snmp-17.05-0003.x86_64) scriptlet failed, exit status 1
(2)解压OpenJDK 8 JRE后要放入javax.activation.jar到其内的 bin 目录。
mv javax.activation.jar jdk8u352-b08-jre/bin
(3)修正 deleteOldVersion.sh 检查和删除旧版本的脚本的一个错误:
./deleteOldVersion.sh: 第 20 行:[: =: 期待一元表达式
原因是upgradesetuptype变量不一定有被赋值,导致该行判断出错。修正方法是把该行的判断条件从单中括号改为用双中括号括住,如下图的第21行:
(4)为了简化安装过程,直接运行安装包解压目录下的RunRPM.sh而不执行install.csh。相当于完整安装,所有选项都是按默认。
这种方式不需要为安装脚本 installer.csh 在系统上安装已经被淘汰的c shell,从奥卡姆剃刀原理出发,这种方式更好。
吐槽:实际整个MSM软件包就只有这一个脚本需要c shell,它就应该基于bash重写!而且它还有语法嵌套错误!问答过程不直观还容易误导!
至于安装过程的那几个选择其实已经没必要去考虑。
选择完整安装,就算服务器上没有启用GUI环境,也不会有问题,只是即时告警功能不生效,本机客户端用不了。只要MSM后台服务能正常运行,服务器的远程管理就能实现。
其它选项:加密证书位数、告警事件范围,都可以通过修改配置文件来调节。
(5)如果操作系统环境中已经存在可用的Java环境,在安装后MSM的后台服务就有可能已经启动运行。可以通过ps进行检查,例如:
[root@server ~]# ps a | grep FrameworkManager | grep -v grep
7044 pts/0 Sl 0:03 /bin/java -classpath /bin/javax.activation.jar:rt.jar:jsse.jar:jce.jar:javax.mail.jar:Framework.jar -Djava.library.path=. Framework.FrameworkManager
如上结果即服务正在运行。在后续配置前应先杀掉该java进程。由于进程停止的脚本有BUG,简单的:
systemctl stop vivaldiframeword
实际并没有让java进程终止。所以要KILL或者像笔者这样手工运行shutdown.sh:
cd /usr/local/MegaRAID\\ Storage\\ Manager/Framework/
./shutdown.sh
去停止服务进程。
(6)配置私有JRE运行环境,重点在于MSM的安装目录名有空格,会导致MSM服务启动脚本中定义的 LD_PRELOAD 环境变量在被ld.so处理时出错:
ERROR: ld.so: object 'amd64/libjsig.so' from LD_PRELOAD cannot be preloaded: ignored.
MSM服务就会启动失败。原因是ld.so对LD_PRELOAD的处理过程不支持对路径中的空白字符进行任何转义操作。关于ld.so,可参考:
解决办法是通过符号链接绕过这个问题。
因此,在/usr/local下创建名为msm的符号链接到 /usr/local/MegaRAID Storage Manager 目录。
ln -s /usr/local/MegaRAID\\ Storage\\ Manager/ /usr/local/msm
(7)移动OpenJD 8 JRE的目录到MSM的安装目录下,顺便把目录名改短,比如改成 jre。
mv jdk8u352-b08-jre/ /usr/local/msm/jre
chcon -u system_u -t usr_t -R /usr/local/msm/jre
注意上面的操作还包括了面向启用了SELinux后要设置正确的文件CONTEXT。
要确保以上操作完成后,必须能得到如下结果:
MSM的安装目录可以通过 /usr/local/msm 访问
jre的所在目录可以通过 /usr/local/msm/jre 访问
(8)修改(替换)运行脚本
由于脚本引用JAVA运行环境完全依赖于JRE_HOME环境变量,由此所产生的冲突问题最突出。因此我自己全部收拾了一遍,按逻辑顺序列出如下:
a. 后台服务的操作脚本:
/etc/init.d/msm_profile
/etc/init.d/vivaldiframeworkd
b. 后台服务的启动和停止脚本
/usr/local/msm/Framework/startup.sh
/usr/local/msm/Framework/shutdown.sh
c. 客户端的启动脚本
/usr/local/msm/startupui.sh
这些脚本的修改目标是一致的:用MSM自己的JRE_HOME环境变量,覆盖取代ROOT用户的(面向全局的)JRE_HOME环境变量。
由于篇幅太长,微信这边贴了也没啥意义。所以提供了网盘下载,也可以点击“阅读原文”到作者网站查看,挂在网站文章网页的最后面了。
下载,解压,然后小心而正确地替换掉以上脚本(假设解压后目录名为fixed_msm_scripts):
\\cp fixed_msm_scripts\\msm_profile /etc/rc.d/init.d
\\cp fixed_msm_scripts\\vivaldiframeworkd /etc/rc.d/init.d
\\cp fixed_msm_scripts\\startup.sh /usr/local/msm/Framework/
\\cp fixed_msm_scripts\\shutdown.sh /usr/local/msm/Framework/
\\cp fixed_msm_scripts\\startupui.sh /usr/local/msm
完成脚本文件的修改或覆盖替换后,务必全面复查脚本文件的属性,包括文件的所有者、读写执行权限以及如果启用了SELinux,检查CONTEXT。大致如下,因为都经过了修正,和原安装后的混乱情况会有所不同:
[root@server init.d]# ll -Z msm_profile vivaldiframeworkd
-rwxr-xr-x. 1 root root system_u:object_r:initrc_exec_t:s0 461 1月 29 12:44 msm_profile
-rwxr-xr-x. 1 root root system_u:object_r:initrc_exec_t:s0 2219 1月 13 2022 vivaldiframeworkd
[root@server msm]# ll -Z startupui.sh
-rwxr-xr-x. 1 root root system_u:object_r:usr_t:s0 309 4月 23 2021 startupui.sh
[root@server Framework]# ll -Z *.sh
-rwxr-xr-x. 1 root root system_u:object_r:usr_t:s0 276 4月 23 2021 shutdown.sh
-rwxr-xr-x. 1 root root system_u:object_r:usr_t:s0 333 4月 23 2021 startup.sh
(9)启动服务
执行如下命令重新加载守护进程定义给systemd:
systemctl daemon-reload
启动MSM后台服务:
systemctl start vivaldiframeworkd
注:MSM后台服务的 systemd 服务描述定义文件是在:
/run/systemd/generator.late/vivaldiframeworkd.service
有需要可以自行修改。
(10)通过客户端连接测试
如果服务器安装了GUI,启动客户端,登录并检查日志和进行操作测试。
如果服务器未安装GUI,则在确认防火墙端口已经正确开启后,在终端计算机上启动MSM客户端,尝试发现服务器,并连接到服务器进行测试。
(1)服务端可能需要调整的运行参数主要包括:
/usr/local/msm/Framework/eventnotificationchoice.properties
该文件控制加载的日志范围,需要哪一种范围就只取消该行的注释并注释掉其它行:
[root@server Framework]# cat eventnotificationchoice.properties
#EVENT_NOTIFICATION_CHOICE=reboot
EVENT_NOTIFICATION_CHOICE=clear
#EVENT_NOTIFICATION_CHOICE=shutdown
如果要调整通信加密秘钥的长度,修改这个文件:
/usr/local/msm/Framework/vivaldikey.properties
内容其实就是二选一:
[root@server Framework]# cat vivaldikey.properties
##########################################################################################
# vivaldikey.properties enables the user to modify the keysize from 2048 to 1024
# and vice-versa by commenting and uncommenting the key\\values
# Please restart the MSM Framework service upon modification take effect.
# vivaldikeys_2048 = key size of 2048
# vivaldikeys = key size of 1024
###########################################################################################
VIVALDI_KEY_FILE = vivaldikeys2048
#VIVALDI_KEY_FILE = vivaldikeys
注意2048位已经是必要设置了,除非必须兼容很旧版本的MSM客户端,否则不需要调整。
修改配置文件后,要重启服务才能生效。
(2)客户端的设置则是这两个文件:
/usr/local/msm/msm.properties
/usr/local/msm/vivaldikey.properties
内容不重复介绍了,可以参考我之前的文章《安装 MegaRAID 存储管理器集中监控 DAS 存储状态》。
Linux版本只是基于CentOS 7去介绍,其它发行版并未涉及,但原理是一致的,就是为MSM设置其私有的OpenJDK 8 JRE,避免和公共使用的JRE冲突。
最后补充一些特殊情况记录:
如果在客户端选择组播发现MSM服务器,需要注意:组播发现不会发现本机上的MSM服务。需要在IP Address框内写上本机地址,才能避免组播发现后的服务器清单中唯独就是没有当前服务器的情况。
然后,无论Windows或Linux服务器,都需要在服务器本机防火墙允许组播协议。这对于Windows服务器需要启用如下图规则:
对于Linux服务器,比如CentOS 7,需要设置如下规则:
firewall-cmd --add-protocol=igmp
firewall-cmd --add-rich-rule='rule family="ipv4" destination address="229.111.112.12" protocol value="ip" accept'
firewall-cmd --runtime-to-permanent
route add 229.111.112.12 dev em1
最后一句添加路由的操作非必须。如果测试发现不执行也能发现和连接服务器就不需要执行。如果需要执行,要放入rc.local,实现服务器开机后运行。
发现当MSM服务器端是Linux时,客户端远程登录后的加载过程特别慢。暂时未找到原因。
最后是给出脚本源文件如下:
1、deleteOldVersion.sh
1#!/bin/sh
2
3echo "Checking for any Old Version"
4searchcont=1
5if [ $searchcont = 1 ]; then
6 linecount=`rpm -qa | grep MegaRAID_Storage_Manager | wc -l`
7 if [ $linecount = 0 ]; then
8 status=1
9 else
10 if [ $linecount = 1 ]; then
11 status=0
12 else
13 echo "More than one copy of MegaRAID Storage Manager has been installed. Exiting installation."
14 exit 1
15 fi
16fi
17
18#echo "setuptype is $setuptype";
19#echo "upgradesetuptype is $upgradesetuptype";
20if [ $linecount = 0 ]; then
21 if [[ $upgradesetuptype = 'u' ]]; then
22 echo "MSM is not installed on this system, MSM upgrade cannot proceed"
23 echo "Exiting MSM installation"
24 exit 1
25 fi
26fi
27
28if [ $status = 0 ]; then
29 newdate=1642093428
30 olddate=`rpm -q --queryformat "%{BUILDTIME}" MegaRAID_Storage_Manager`
31 if [ $newdate -gt $olddate ]; then
32 echo " MegaRAID Storage Manager is already installed $linecount"
33 echo " Select Y or N "
34 echo " Y, previous version of MSM will be uninstalled and latest MSM will be installed"
35 echo " N, No changes made to the system"
36 read ELU
37 # echo "$ELU"
38 if [ "$ELU" != "y" -a "$ELU" != "Y" ]; then
39 echo "Exiting Installation "
40 exit 1
41 fi
42 echo "Uninstalling Old version"
43 . /etc/init.d/msm_profile
44 "$MSM_HOME/.__uninst.sh"
45 status=$?
46 if [ $status = 0 ]; then
47 if [ -f "$MSM_HOME/.__uninst.sh" ]; then
48 echo "Uninstall Failed. Exiting installation."
49 exit 1
50 fi
51 echo "Uninstall Completed Successfully"
52 else
53 echo "Uninstall Failed. Exiting installation."
54 exit 1
55 fi
56 else
57 if [ $newdate = $olddate ]; then
58 echo "The version is already installed."
59 else
60 echo "The installed version is newer."
61 fi
62 echo "Exiting installation."
63 exit 1
64 fi
65 else
66 echo "No Old Version Found"
67 fi
68fi
69echo "Continuing with installation"
70exit 0
2、msm_profile
1#!/bin/sh
2#
3# msm_profile sets the environment variables
4# chkconfig: 2345 99 00
5# processname: msm_profile
6### BEGIN INIT INFO
7# Provides: msm_profile
8# Required-Start:
9# Required-Stop:
10# Default-Start: 2 3 4 5
11# Default-Stop: 0 6
12# Description: msm_profile
13### END INIT INFO
14
15# 为从系统默认路径中删除公共性质的JRE路径,需要如下这个函数
16function path_remove {
17 # Delete path by parts so we can never accidentally remove sub paths
18 if [ "$PATH" == "$1" ] ; then PATH="" ; fi
19 PATH=${PATH//":$1:"/":"} # delete any instances in the middle
20 PATH=${PATH/#"$1:"/} # delete any instance at the beginning
21 PATH=${PATH/%":$1"/} # delete any instance in the at the end
22}
23
24# 保留原有的环境变量输出
25MSM_HOME="/usr/local/MegaRAID Storage Manager"
26export MSM_HOME
27PRODUCTNAME="MegaRAID Storage Manager"
28export PRODUCTNMAME
29MSM_PRODUCT=MSM
30export MSM_PRODUCT
31
32# 从系统默认路径中删除JAVA_HOME相关路径
33if [ "$JAVA_HOME" != "" ] ;
34then
35 TODEL=$JAVA_HOME/bin
36 path_remove $TODEL
37 TODEL=$JAVA_HOME/jre/bin
38 path_remove $TODEL
39 path_remove $JAVA_HOME
40fi
41
42# 从系统默认路径中删除JRE_HOME相关路径
43if [ "$JRE_HOME" != "" ] ;
44then
45 TODEL=$JRE_HOME/bin
46 path_remove $TODEL
47 path_remove $JRE_HOME
48fi
49
50# 修改系统默认路径,加入私有的JRE
51# 注意:需要预先创建符号链接到MSM的安装目录,从而避免目录名中的空格引入LD_PRELOAD导致ld.so出错。
52MSM_HOME_LINK="/usr/local/msm"
53JRE_HOME=$MSM_HOME_LINK/jre
54PATH=$JRE_HOME/bin:$PATH
55LD_LIBRARY_PATH=.:$JRE_HOME/lib:$JRE_HOME/lib/amd64:$JRE_HOME/lib/amd64/jli
56CLASSPATH=.:$JRE_HOME/lib:$JRE_HOME/lib/amd64:$JRE_HOME/lib/amd64/jli
57export JRE_HOME PATH LD_LIBRARY_PATH CLASSPATH
58
59# for debug
60#echo $MSM_HOME
61#echo $MSM_HOME_LINK
62#echo $JRE_HOME
63#echo $PATH
64#echo $LD_LIBRARY_PATH
65#echo $CLASSPATH
3、vivaldiframeworkd
1#!/bin/bash
2#description: Framework serice startup/shutdown script
3# chkconfig: 2345 99 00
4### BEGIN INIT INFO
5# Provides: Framework
6# Required-Start: $syslog
7# Required-Stop:
8# Default-Start: 2 3 4 5
9# Default-Stop: 0 6
10# Description: vivaldiframework service
11### END INIT INFO
12#Function to check status of Framework service
13source /etc/profile
14
15check_status() {
16 . /etc/init.d/msm_profile
17 x=`ps -ef|grep java|grep Framework.jar`
18 if [ "$x" = "" ] ; then
19 return 3;
20 fi
21 return 0
22}
23
24#Function to start Framework service
25start() {
26 \\rm -f /tmp/network_present
27 . /etc/init.d/msm_profile
28 network_flag=0
29 for (( i=0; i < 20; i++ ))
30 do
31 if [ -f "$MSM_HOME_LINK/Framework/TestNetworkCapability.class" ]
32 then
33 echo "$MSM_PRODUCT with Network Capability">>/dev/null
34 "$MSM_HOME_LINK/jre/bin/java" -classpath "rt.jar:$MSM_HOME_LINK/Framework" TestNetworkCapability
35 if [ -f /tmp/network_present ]
36 then
37 network_flag=1
38 i=21
39 \\rm -f /tmp/network_present
40 else
41 sleep 5
42 fi
43 else
44 echo "$MSM_PRODUCT without Network Capability">>/dev/null
45 network_flag=1
46 i=21
47 fi
48 done
49 if [ $network_flag -eq 1 ]
50 then
51 echo "Trying to start Framework.....">>/dev/null
52 else
53 echo "$MSM_PRODUCT failed to start Framework..... Check your Network">>/dev/null
54 echo "Trying to start Framework without Network Capability.....">>/dev/null
55 fi
56 sh "$MSM_HOME_LINK/Framework/startup.sh" >> /dev/null 2>>/dev/null &
57}
58
59#function to stop Framework Service
60stop() {
61 . /etc/init.d/msm_profile
62 sh "$MSM_HOME_LINK/Framework/shutdown.sh" >> /dev/null &
63 sh "$MSM_HOME_LINK/Framework/shutdown.sh" >> /dev/null &
64}
65
66case "$1" in
67 start)
68 check_status
69 status=$?
70 if [ $status = 0 ]; then
71 echo "Framework is already running....."
72 else
73 echo "Starting Framework: "
74 start
75 fi
76 ;;
77 stop)
78 check_status
79 status=$?
80 if [ $status = 3 ]; then
81 echo "Framework is already stopped....."
82 else
83 echo "Shutting down Framework: "
84 stop
85 fi
86 ;;
87 restart|reload)
88 $0 stop
89 sleep 20
90 $0 start
91 ;;
92 status)
93 check_status
94 RETVAL=$?
95 if [ $RETVAL = 0 ]; then
96 echo "Framework is running..."
97 else
98 if [ $RETVAL = 3 ]; then
99 echo "Framework is stopped..."
100 else
101 echo "Framework status unknown..."
102 fi
103 fi
104 ;;
105 *)
106 echo "Usage: $0 {start|stop|restart|status}"
107 exit 1
108esac
109exit $RETVAL
4、startup.sh
1#!/bin/sh
2
3. /etc/rc.d/init.d/msm_profile
4
5cd "$MSM_HOME_LINK/Framework"
6
7LD_PRELOAD=$JRE_HOME/lib/amd64/libjsig.so
8export LD_PRELOAD
9
10LD_LIBRARY_PATH=`pwd`:/opt/lsi/Pegasus:/opt/msm/lib:/opt/snmp/lib
11export LD_LIBRARY_PATH
12
13JAVAX_PATH=$JRE_HOME/bin/javax.activation.jar
14
15"$JRE_HOME/bin/java" -classpath $JAVAX_PATH:rt.jar:jsse.jar:jce.jar:javax.mail.jar:Framework.jar -Djava.library.path=. Framework.FrameworkManager
5、shutdown.sh
1#!/bin/sh
2
3. /etc/rc.d/init.d/msm_profile
4
5cd "$MSM_HOME_LINK/Framework"
6
7"$JRE_HOME/bin/java" -classpath rt.jar:jsse.jar:jce.jar:Framework.jar:framework_shutdown.jar:. -Djava.library.path=. shutdown.FrameworkShutdown
6、startupui.sh
1#!/bin/sh
2
3if [ "$DISPLAY" = "" ]; then
4 echo "X11 Display variable is not properly set"
5fi
6. /etc/init.d/msm_profile
7cd "$MSM_HOME_LINK"
8#XMODIFIERS=@im=none
9"$JRE_HOME/bin/java" -DVENUS=true -classpath .:GUI.jar:monitorgui.jar:DebugLog.jar:log4j-1.2.15.jar:jaxen-1.1.jar:jdom-1.1.jar GUI.VivaldiStartupDialog ajsgyqkj=71244
本站微信订阅号:
本页网址二维码: