linux 用户环境重启,Linux环境下自动重启东方通

Linux环境下如何设置东方通Tongweb中间件自动重启机制

一:背景

前段时间在客户现场出差(项目已经上线了),一大早就被用户电话打来说系统打不开,我一看确实挂了报了404,又心想服务器之类的近期都没有动过,但是去服务器上用命令行看了一下发现进程都不见了:Linux环境查看Java进程的命令:ps -ef|grep java

a051d7b089aa

二:分析解决

正常来说,东方通(其实不管是什么服务)在启动的时候,肯定是有一个进程在跑的,这样子一来,问题就变成了为什么东方通的进程会消失掉?

为了让用户以最快的时间恢复使用,我第一步要做的事肯定是把东方通Tongweb的服务跑起来,还是一样,用命令行就可以启动了:进入到启动bin目录:cd /TongWeb5.0/bin(进入路径用cd命令,东方通bin目录默认路径为/app/TongWeb5.0/bin,但并不绝对,根据实际路径进入即可)

这时候命令行窗口就会跳到对应的路径下(jsyy-webapp为本人项目的war包名):

a051d7b089aa然后在bin目录下执行启动命令:nohup ./startserver.sh &

这时候,东方通Tongweb就跑起来了。有人会问:是不是到这就搞定了?还没有。我们先再重新看一下服务器的进程(跟前文命令一致):

a051d7b089aa

东方通的进程又回来了,第一个root后面进程号38842的就是东方通的进程。

东方通现在活了,但是上面的应用会不会自动起来呢?于是我们看了一下控制台,发现应用跟进程消失之前一样,都是true的状态。但是这样子是否意味着系统可以正常使用呢?答案是否定的。程序包被动停止再被中间件带起来后往往会存在一种假启动的状态(看着是在跑,实际上没跑起来),尤其是组件多而且互相产生依赖的时候,更容易出现这种情况。所以目前的情况还是要手动重启一遍东方通上面的组件:

a051d7b089aa

手动重启之后,应用才算恢复正常。用户恢复正常使用后,这个时候我们去排查服务器日志,发现服务器进行了重启。而后面跟服务器的工程师沟通后发现是服务器出了故障,自动重启了。但是上面的服务(东方通)没有自动重启造成的。

但是这样太麻烦了,每次服务器重启之后所有服务都要手动重启,一两个服务还好,服务多了难免会遗漏。这个时候强大的命令行又出现了:

在Linux服务器的/root/etc路径下的rc.local文件里加上两行启动脚本,如图所示:

a051d7b089aa

本人用的FTP工具为filezilla,你用winscp或者其他的都行。

将这个配置文件down到本地,然后如图所示加两行命令:

a051d7b089aa

你们一定发现了,对,就是刚才前文提到的两行命令:一个是进入bin目录,一个是启动。

两句命令用分号隔开即可,千万不要写成一句命令。

然后将修改后的配置文件传回原路径下,就实现了Linux环境下的服务自动重启。这样子就避免了今天出现的问题,如果以后服务器再自己重启的话,我的应用也不会死。

三:总结扩展

如果服务器上有很多服务,比如Apache,Nginx、或者数据库MySQL等其他应用,也是一个道理,换一行就可以一起搞定。

这种为比较好上手的办法,可能有些局限性,其实还有别的办法,就是直接在root根目录下建一个脚本,比如autostartTongweb.sh,然后在该脚本下输入启动服务的命令,然后将脚本标记为可执行文件,也是可以的(添加可执行的权限,chmod+x/root/autostartTongweb.sh.)

在一些系统版本,比如centos7中,rc.local的权限被降低了,重启后执行自己的脚本有时候往往不能启动部分服务。这个时候也是将该配置文件标记为可执行文件,增加它的权限,这样的话脚本在重启后也可以跑了。

PS:本文为本人第一篇文章,纯粹是笔者在项目实践中遇到的问题,现初步整理出来给大家参考。如果发现有哪些地方有错误、不严谨等各种问题或意见建议请无情地指出来,也非常欢迎技术大佬莅临指点;本人非常欢迎大家思考后的一些好想法以及思维碰撞,如果是无脑喷或者想都没想脱口而出,就算了。

最后,希望能对大家有点帮助。

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值