您现在的位置: 首页 > 服务器 > Linux教程 > 正文

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

作者:admin来源:网络浏览:时间:2018-03-02 14:50:20我要评论
分享到
在做微信小游戏的时候,使用 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. echo "`date` : listener port is down">>/home/wwwlogs/swoole_down.log 
  6. #ps -eaf |grep "swoole:command" | grep -v "grep"| awk '{print $2}'|xargs kill -9 
  7. #sleep 2 
  8. #ulimit -c unlimited 
  9. #如果3389端口down了,重启namenode服务 
  10. /usr/local/php/bin/php /home/wwwroot/h5guess/artisan swoole:command start 
  11. else 
  12. echo "3389端口正常" >>/home/wwwlogs/swoole_ok.log 
  13. fi 


相关热词搜索: