Crontab监听swool端口,只要地球不爆炸服务永久不死掉

版权声明:廖圣平博客,未经博主允许不得转载。企鹅:1194008361 https://blog.csdn.net/qq_22823581/article/details/79972685

为什么要监听

要是挂了,电话会被打爆的。

在swool 官方文档中写到:

在某些情况下,如系统负载过大swoole无法申请到内存而挂掉、swoole底层发生段错误、Server占用内存过大被内核Kill,或者被某些程序误杀。那swoole-server将无法提供服务,导致业务中断,公司收入出现损失。
利用进程的方式检测可以直接用官方提供的案例点击进入

利用监听端口的形式来restart swool 服务

原理和监听进程差不多, 每1分钟去监听这个端口是否存在, 如果不存在,则启动项目中的swool 服务。

check-port-on-crontab.sh

port=9502
#根据端口号查询对应的pid
pid=$(netstat -nlp | grep :$port | awk '{print $7}' | awk -F"/" '{ print $1 }');

#杀掉对应的进程,如果pid不存在,则不执行
if [  -z  "$pid"  ];  then

   /usr/local/php/bin/php /www/im/swoole/im.php
fi

目前的端口是9502,把这个端口kill 掉, 再执行 这个sh 文件,如果服务是正常的则监听是正常的。

加入crontab

crontab -e


*/1 * * * * sh /www/sh/check-port-on-crontab.sh>/www/log/check-swool-port.log 2>&1 &

每一分钟去执行 check-port-on-crontab.sh 这个脚本。同时加入自定义的log 日志中。

阅读更多 登录后自动展开
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页