测试环境说:自动化用例又fail了,这个锅我不背——linux进程监控及自动重启
背景
机房要迁移了!机房要断电了!机房服务器要重启了!每次机房要搞事情,总是有一堆烦恼的事情。服务器重启了,各应用都需要重新启动,未及时重启,总是会有各种各样的不愉快。
哎呀,某某应用还未启动,以为某某同事去启动了,某某比较隐蔽的服务,又忘记启动了……各种启动任务需要手动执行,但总是还有部分应用被遗忘。
最终导致,每日自动化回归用例又挂掉啦T_T,服务器已经启动了,怎么还挂掉啊T_T。
开始分析redis,数据库,上游服务……历经千辛万苦,终于把服务都重启完毕,心好累……
思考
如何保证各应用稳定运行?机房搞完事情,环境不稳定现象,重则持续一周。
人为手动重启,总是存在遗漏的情况,而且这重复枯燥的任务,实在不想每次都手动执行一遍。
是否存在一种自动化方式,能够自动监控应用运行情况,若应用未运行,则自动启动?
而且,需要服务器重启后,能够自动检测到,并在短时间内进行重启应用操作,降低对整个测试环境的影响。
解决方案
概述
通过linux的crontab定时任务,设置开机自启动,来监听指定进程是否启动,若进程未启动,则根据指定的启动脚本启动进程。
Shell脚本
新建/apps/sh/monitorprocess.sh脚本,脚本内容如下,需根据实际情况稍微修改:
1 | #!/bin/sh |
提醒:记得给脚本添加执行权限哦~
crontab定时任务
执行命令如下:
1 | #进入crontab编辑模式 |
结果
我们再也不怕机房迁移,机器重启,服务进程不稳定被kill等影响环境稳定;我们再也不用因为自动化用例又fail了,再次把锅甩给不稳定的测试环境了!