Shell脚本监听端口是否挂掉,重启swoole服务-ITB运维部落—http://www.itbcn.cn—ITB运维技术交流之家平台
记录工作点滴
分享运维知识

Shell脚本监听端口是否挂掉,重启swoole服务

在做微信小游戏的时候,使用 PHP + Swoole 作为网络通信框架,在某些情况下,如系统负载过大swoole无法申请到内存而挂掉、swoole底层发生段错误、Server占用内存过大被内核Kill,或者被某些程序误杀。那swoole-server将无法提供服务。有一个非常有效并且在BAT等大型公司常用的方案是crontab重启监控。
原理是每1分钟执行一次shell脚本,检测端口是否存活,如果存在则跳过。如果发现主进程已经挂掉,则重新启动Server。

  1. #!/bin/bash
  2. TCPListeningnum=`netstat -an | grep “:3389” | awk ‘$1 == “tcp” && $NF == “LISTEN” {print $0}’ | wc -l`
  3. if [ $TCPListeningnum -eq 0 ]
  4. then
  5. {
  6. echo “`date` : listener port is down”>>/home/wwwlogs/swoole_down.log
  7. #ps -eaf |grep “swoole:command” | grep -v “grep”| awk ‘{print $2}’|xargs kill -9
  8. #sleep 2
  9. #ulimit -c unlimited
  10. #如果3389端口down了,重启namenode服务
  11. /usr/local/php/bin/php /home/wwwroot/h5guess/artisan swoole:command start
  12. }
  13. else
  14. {
  15. echo “3389端口正常” >>/home/wwwlogs/swoole_ok.log
  16. }
  17. fi
未经允许不得转载:ITB运维部落—http://www.itbcn.cn—ITB运维技术交流之家平台 » Shell脚本监听端口是否挂掉,重启swoole服务

如果文章对你有帮助,欢迎点击上方按钮打赏作者

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址