免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1754 | 回复: 1
打印 上一主题 下一主题

*Nix下定时启动并重启程序的脚本 . [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2011-12-03 15:05 |只看该作者 |倒序浏览
*Nix下定时启动并重启程序的脚本 .
  1. view plaincopy to clipboardprint?
  2. 01.<pre name="code" class="python">#!/bin/sh   
  3. 02.  
  4. 03.# 设置整个周期的间隔秒数   
  5. 04.CYCLE_INTERVAL=86400  
  6. 05.# 设置启动实例后杀死实例的间隔秒数   
  7. 06.# = CYCLE_INTERVAL 时,代表周期性启动   
  8. 07.# < CYCLE_INTERVAL 时,意味着存在一段不运行间隔时间   
  9. 08.KILL_INTERVAL=86400  
  10. 09.# 设置实例杀死后等待启动的间隔秒数   
  11. 10.IDLE_INTERVAL=$(($( expr $(($CYCLE_INTERVAL)) - $(($KILL_INTERVAL)) )))        
  12. 11.echo "启动实例后杀死实例的间隔秒数=$KILL_INTERVAL"  
  13. 12.echo "实例杀死后等待启动的间隔秒数=$IDLE_INTERVAL"  
  14. 13.  
  15. 14.# 设置可执行sh文件的全路径   
  16. 15.APP_PATH=/home/private/ECMDev/ECMServer-deploy/RtService/run-rtmonitor.sh  
  17. 16.echo "实例启动路径=$APP_PATH"  
  18. 17.  
  19. 18.# 设置上述可执行文件中的启动参数特别的样式   
  20. 19.# 对于java程序,请注意保证每个java程序启动参数 Xmx???? 中????各个不同即可   
  21. 20.APP_PARTERN=Xmx514  
  22. 21.echo "实例中特别的参数样式=$APP_PARTERN"  
  23. 22.  
  24. 23.echo -n "按任意键开始自动运行, Ctrl+C 退出 > "  
  25. 24.read anykey  
  26. 25.  
  27. 26.FISRT_RUN="true"  
  28. 27.  
  29. 28.# 开始自动周期性运行   
  30. 29.while true  
  31. 30.do  
  32. 31. # 杀死上一个运行的实例,防止上次没有干净退出   
  33. 32. pid_apps=$(ps -ef | grep "$APP_PARTERN" | awk 'BEGIN{FS=" "}{print $2","$8}')  
  34. 33. echo $pid_apps  
  35. 34. for pid_app in $pid_apps; do  
  36. 35.  pid=$(echo $pid_app | awk 'BEGIN{FS=","}{print $1}')  
  37. 36.  app=$(echo $pid_app | awk 'BEGIN{FS=","}{print $2}')  
  38. 37.  
  39. 38.  if [ "$pid" == "" ] || [ "$app" == "grep" ] || [ "$app" == "/bin/sh" ] || [ "$app" == "sh" ]; then   
  40. 39.   echo -n ""  
  41. 40.  else  
  42. 41.   echo -n "杀死运行的实例 (PID=$pid)"  
  43. 42.   kill -9 $pid  
  44. 43.    fi  
  45. 44. done  
  46. 45.  
  47. 46. # 初始启动时立即执行实例   
  48. 47. if [ "$FIRST_RUN" == "true" ]; then  
  49. 48.  FIRST_RUN="false"  
  50. 49. else  
  51. 50.  echo "上一次运行的实例已完全退出,准备就绪,下一次运行等待 $IDLE_INTERVAL 秒后启动..."  
  52. 51.  sleep $IDLE_INTERVAL  
  53. 52. fi   
  54. 53.  
  55. 54. # 在后台启动运行进程   
  56. 55. cd $(dirname $APP_PATH)  
  57. 56. $APP_PATH &  
  58. 57.  
  59. 58. sleep 1   
  60. 59. echo "$KILL_INTERVAL 秒后杀死实例"  
  61. 60. sleep $KILL_INTERVAL   
  62. 61.done
复制代码

论坛徽章:
33
ChinaUnix元老
日期:2015-02-02 08:55:39CU十四周年纪念徽章
日期:2019-08-20 08:30:3720周年集字徽章-周	
日期:2020-10-28 14:13:3020周年集字徽章-20	
日期:2020-10-28 14:04:3019周年集字徽章-CU
日期:2019-09-08 23:26:2519周年集字徽章-19
日期:2019-08-27 13:31:262016科比退役纪念章
日期:2022-04-24 14:33:24
2 [报告]
发表于 2011-12-03 15:42 |只看该作者
转帖也要专业嘛
行号都不删
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP