HP-UXEVMdaemon频繁报错问题排查

1.错误信息描述

在重庆万州进行设备巡检时,发现CCS01A(HP UNIX B.11.31)服务器终端窗口频繁弹出报错,查看dmesg输出信息和OLDsyslog.log全是该报错以及/var分区满了的信息,但是syslog.log在很久之前就没有再被写入内容,是空文件。

让客户满意是我们工作的目标,不断超越客户的期望值来自于我们对这个行业的热爱。我们立志把好的技术通过有效、简单的方式提供给客户,将通过不懈努力成为客户在信息化领域值得信任、有价值的长期合作伙伴,公司提供的服务项目有:国际域名空间、虚拟主机、营销软件、网站建设、普兰店网站维护、网站推广。

# 终端窗口频繁出现的报错信息
esmd: System Error: The EVM daemon has failed and cannot be restarted

HP-UX EVM daemon频繁报错问题排查

2.syslog.log为空文件的问题解决办法

重启syslogd服务后解决,esmd: System Error: The EVM daemon has failed and cannot be restarted等相关报错信息开始写入日志文件。

3.evm daemon频繁报错解决办法

Event Management ( EVM )

在正常的服务器上执行命令:

ps -ef | grep evm*

可以得到以下结果,但是CCS01A(报错服务器)上没有任何关于evm的进程:

HP-UX EVM daemon频繁报错问题排查

手动执行命令启动evmd进程:

/usr/sbin/evmd

再次查看CCS01A上该进程已经存在,服务器不再报错。

HP-UX EVM daemon频繁报错问题排查

但是类似正常服务器的evmlogger 和 evmchmgr 相关进程并没有启动,按照正常服务器进程显示的命令手动执行evmlogger 和 evmchmgr相关命令,服务器报错:

interpreter "/bin/sh" not found

和正常的服务器进行对比发现:正常的服务器上存在:/bin -> /usr/bin 的软链接,而CCS01A上没有,因此在CCS01A上新建软链接,并修改其属主和属组:

HP-UX EVM daemon频繁报错问题排查

ln -s /usr/bin /bin
chown -h bin:bin /bin

修改后,CCS01A evm相关服务正常启动,关闭evmd服务后服务器也可以立刻将其自动启动。

建议手动的开启关闭evmd服务的方法是(==其实正常情况下该服务只要被关闭就会立刻自动启动==):

evmstop
evmstart
也可以:
/sbin/init.d/evm stop
/sbin/init.d/evm start

4.纠结的排错过程记录

首先,在网上查找到的解决办法是:

if you have same issue you can try to  Copy evmstart and evmstop scripts from the good host. Then the issue is solved.

也就是说在将正常的服务器的evmstart和evmstop文件拷贝到报错的服务器上即可,可以使用如下命令查找这两个文件:

find / -name evmstart
find / -name evmstop

首先将CCS01A服务器的原文件进行备份,然后将正常的文件拷贝至CCS01A,注意修改文件的属主属组和权限。

HP-UX EVM daemon频繁报错问题排查

但是我发现拷贝正确的文件后CCS01A仍然会报错,于是在正常的服务器上查看evm相关的进程:

ps -ef | grep evm*

发现正常服务器上有进程:/usr/sbin/evmd 进程,而CCS01A上没有,于是在CCS01A上将该进程开启,执行命令:

/usr/sbin/evmd

再次查看CCS01A上该进程已经存在,服务器不再报错,然后搜索了evmd服务的开启及关闭方法,如下:

# HP UNIX 重启evmd服务的方法:
# 方法一:
•/sbin/init.d/evm stop
•/sbin/init.d/evm start
# 方法二(方法一应该是是正规做法):
•杀死evmd进程 kill -9 PID
•执行命令/usr/sbin/evmd
# 方法三(该方法是从/sbin/init.d/evm脚本中看到的):
•evmstop
•evmstart

本以为这样就彻底解决了问题,心血来潮决定重启一下evmd 服务试试,结果再次频繁发生报错,并且使用/sbin/init.d/evm start命令无法启动evmd服务,重启过程见下图:

HP-UX EVM daemon频繁报错问题排查

HP-UX EVM daemon频繁报错问题排查

于是查看/sbin/init.d/evm 文件,发现该脚本建议使用evmstart 和evmstop 来手动开启关闭evmd服务,并且该脚本也是调用的这两个命令,于是执行evmstart 来开启evmd服务,结果还是报错:

HP-UX EVM daemon频繁报错问题排查

报错中提示/bin/sh 找不到,查看evmstart 脚本,发现其开头指定的命令解释器为:#!/bin/sh.在终端窗口执行命令: which sh 得出的结果却是:/usr/bin/sh,其他正常的服务器都是:/bin/sh

这里开始主观的认为正常的服务器sh命令是在/bin/sh目录下,而报错的CCS01A则由于未知原因导致sh在/usr/bin目录下

于是把/usr/sbin目录下evm*相关的脚本开头的命令解释器都修改为:#!/usr/bin/sh,再次执行evmstart 后,evmd服务正常启动,对其进行重启:

evmstop
evmstart
或者
/sbin/init.d/evm stop 
/sbin/init.d/evm start

系统不再报错,其实关闭该服务后,系统会很快自动将其开启,无需手动开启evmd服务。见下图:

HP-UX EVM daemon频繁报错问题排查

最后和正常的服务器进行对比,又发现CCS01A上关于evm的进程比较少,正常服务器进程如下:

HP-UX EVM daemon频繁报错问题排查

于是按照正常服务器进程显示的命令手动执行evmlogger 和 evmchmgr相关命令,服务器报错:

interpreter "/bin/sh" not found

和正常的服务器进行对比发现:正常的服务器上存在:/bin -> /usr/bin 的软链接,而CCS01A上没有,因此在CCS01A上新建软链接,并修改其属主和属组:

HP-UX EVM daemon频繁报错问题排查

# 新建软链接
ln -s /usr/bin /bin
chown -h bin:bin /bin

修改后,CCS01A evm相关服务正常启动,关闭evmd服务后服务器也可以立刻将其自动启动。至此该错误成功解决。

5.其他问题说明

关于命令解释器的路径问题:

在CCS01A终端窗口执行命令: which sh    
得出的结果却是:/usr/bin/sh,其他正常的服务器都是:/bin/sh

可以用which命令显示系统命令路径的顺序来解释:

which命令的作用是,在PATH变量指定的路径中,搜索某个系统命令的位置,并且返回第一个搜索结果。也就是说,使用which命令,就可以看到某个系统命令是否存在,以及执行的到底是哪一个位置的命令。

在CCS01A创建完软链接后,只需要修改当前的PATH变量即可使其和其他服务器显示的路径一致:

PATH=/bin:$PATH

为避免有其他影响,本次未对CCS01A进行PATH变量修改。

在网上索搜到的另外一种解决办法如下,但是实验后并没有解决问题,现在也将这种方法列出,仅供参考:

Hello freinds,
Above mentioned problem is solved.
Problem was solved by this way - Ensure that there is softlink between / directory to the directory which contains evmstop and evmstop script files.
Command i used is
ln -s /usr/bin2 /
Thanks for your support.

网站栏目:HP-UXEVMdaemon频繁报错问题排查
网站链接:https://www.cdcxhl.com/article14/pjjgge.html

成都网站建设公司_创新互联,为您提供搜索引擎优化网站收录服务器托管品牌网站制作营销型网站建设网站营销

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联

手机网站建设