实现原理

主要是使用linux提供的crontab机制,定时查询服务器进程是否存在,如果宕机则执行我们预设的重启脚本

实现

1. 向crontab添加任务- crontab -l 查询当前用户的任务- 创建一个文件(server_cron)输入* * * * * sleep 10; sh /路径/server_maintenance.sh- cronrab server_cron  (生效)
2. shell脚本
     #! /bin/shproc_name="./server"            #进程名proc_num()                      #查询进程数量{num=$(ps -ef |  grep gdms |grep $proc_name | grep -v "grep" | wc -l)echo $numreturn $num}proc_numnumber=$?                       #获取进程数量  if [ $number -eq 0 ]            #如果进程数量为0then                            #重新启动服务器,或者扩展其它内容。  cd /home/liudongwei/workspace/server2.0/distnohup ./server &  fi

参考:
https://www.cnblogs.com/leodaxin/p/9222969.html
https://blog.csdn.net/shanzhizi/article/details/8123854


上个版本经过实际应用,发现严重的问题:每隔一分钟就会执行一次脚本,如果有LOG日志的话,会发现你的磁盘快满了o(╥﹏╥)o

解决问题:

  1. 回顾了crontab相关知识

    • crontab -l
      查询当前用户任务
    • tail -f /var/log/syslog
      查看到执行任务命令之后在日志中的信息反馈
    • crontab -r
      删除当前用户任务
  2. 分析
            经过我在网上搜素相关问题,了解到有些脚本放在crontab定时器中执行,不会运行(就比如我上文提到的重启服务脚本),我上个脚本之所以执行成功,是因为 grep gram,其实我也不知道这是啥意思,我抄的。。。大意是搜索gram,这个哪有,所以函数proc_num() 返回值都是0。

  3. 解决

  • 一行一行的理解代码
  • 验证测试
  • 反正我是试出来的
proc_num()
{#     ps -ef | grep ./server
#     echo
#     ps -ef | grep ./server | grep -v "grep"
#     echo
#     ps -ef | grep $proc_name | grep -v "grep" | grep -v "sh"
#     echo
#     ps -ef | grep $proc_name | grep -v "grep" | wc -l
#     echo
#     ps -ef | grep $proc_name | grep -v "grep" | grep -v "sh" |wc -l
#     echonum=$(ps -ef | grep $proc_name | grep -v "grep" | grep -v "sh" |wc -l)
#     echo $numreturn $num
}

总结

拿来,没有真正理解,会返工,只能多总结,多积累

Linux服务器挂掉,使之自动重启脚本相关推荐

  1. 我的世界自动开关服务器,我的世界自动重启脚本方法_我的世界如何让服务器自动重启_游戏堡...

    我的世界如何让服务器自动重启:<我的世界>游戏中怎么样才能让服务器自动重启?下面游戏堡小编给大家介绍的是我的世界自动重启脚本方法,小伙伴们一起来看看吧. 首先,你要有一个对应你服务器核心的 ...

  2. 我的世界服务器java启动脚本_我的世界定时关闭服务器 自动重启脚本

    我的世界定时关闭服务器 自动重启脚本.其实定时关闭服务器脚本还是有好处的,因为我们不可能永远都待在服务器的旁边,出问题的时候我们不可能第一时间去重启服务器查找问题的,所以老手腐竹们就需要一个定期重启的 ...

  3. 1 在 Linux 下开机自动重启脚本(亲测)

    /etc/rc.local 开机启动程序,把需要开机自动运行的程序写在这个脚本里 /etc/init.d 这个目录存放的是一些脚本,一般是linux以rpm包安装时设定的一些服务的启动脚本. 要重新启 ...

  4. 修改服务器ip 需要重启,linux服务器设置ip后需要重启吗

    linux服务器设置ip后需要重启吗 内容精选 换一换 切换操作系统是为您的弹性云服务器重新切换一个系统盘.切换完成后弹性云服务器的系统盘ID会发生改变,并删除原有系统盘.如果弹性云服务器当前使用的操 ...

  5. Linux 多应用程序docker自动部署脚本

    2019独角兽企业重金招聘Python工程师标准>>> Linux 多应用程序docker自动部署脚本可以结合jenkins分布式部署 参数: 镜像名:端口的格式:版本号 例如:sp ...

  6. 解析Linux 多应用程序docker自动部署脚本

    2019独角兽企业重金招聘Python工程师标准>>> 摘要: Linux 多应用程序docker自动部署脚本可以结合jenkins分布式部署 Linux 多应用程序docker自动 ...

  7. 服务器凌晨莫名奇妙自动重启解决方案

    服务器凌晨莫名奇妙自动重启解决方案 转载请注明出处:http://blog.csdn.net/aaa123524457/article/details/47609701 问题描述: 这两天早上到公司, ...

  8. linux超过cpu负载重启脚本,linux下Web服务器CPU负载超过阀值自动重启脚本

    说明: 操作系统:CentOS web服务器:apache 问题: 搜索引擎的爬虫导致网站在某一段时间内访问量剧增,服务器压力过大,网站访问超时.页面无法打开. 解决办法: 定时监控服务器负载,超过一 ...

  9. Memcached进程挂掉自动重启脚本

    由于一台WEB服务器的Memcached死掉而导致在访问网站的某些页面时候打不开,下面脚本会自动检测Memcached的进程,如果挂掉则自动重启Memcached服务. cat /root/sh/me ...

最新文章

  1. Spark的RDD 文件读取与保存
  2. 谷歌最新提出无需卷积、注意力 ,纯MLP构成的视觉架构
  3. gradle转maven
  4. 配置一个 MVC 项目时 遇到的
  5. Docker - Docker中搭建MySQL主从
  6. Linux 磁盘管理--RAID1创建
  7. Android 简单闪屏
  8. 判断zk是否挂掉_Zookeeper入门学习第一天,zk集群简单介绍
  9. selenium定位方式
  10. 抽象类和接口有哪些共同点和区别
  11. 十八道海量数据处理面试题与相关知识讲解
  12. 【已测】开源PHP个人导航网站源码,有后台
  13. cad图层置顶的lisp_CAD图层遮挡,如何将CAD图形进行前置或者后置?
  14. 巴菲特致股东的一封信:1989年
  15. linux c 程序异常退出时打印堆栈调用信息
  16. 银河5 号超级计算机,全球超级计算机500强最新排行 天河一号第五
  17. GCT考试之考试结果
  18. uniapp ping插件 离线打包
  19. 锂电池标3.7V或4.2V的区别
  20. 播放失败246106异常代码_史上最全燃气壁挂炉故障代码,这个值得收藏

热门文章

  1. 使用函数计算分段函数的值
  2. 简记_PSpice仿真软件学习笔记(二)
  3. Mac切换docker镜像源
  4. 分享一个react 图片上传组件 支持OSS 七牛云
  5. 【转载】64 位 Windows 内核虚拟地址空间布局(基于 X64 CPU)
  6. 中国存储器“3+1”版图初现 行业要再跑5年马拉松
  7. Apple store安装旧版本的软件
  8. 首届大连国际樱花节将启幕
  9. 计算机基础知识考什么,我想请问下,计算机初级考试考些什么东西?
  10. 大三软件测试实习生面试经验-1