免费注册 查看新帖 |

Chinaunix

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

[系统管理] Linux系统重启后,含有while死循环的脚本如何设置在/etc/rc.local里并运行成功? [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2014-11-21 14:24 |只看该作者 |倒序浏览
原理机制:
有两个shell脚本, 1个是用来每5分钟ping一次百度, 然后把结果写入文本文件; 另外一个是每隔8分钟来读取该文本文件中出现"网络故障"的次数, 如果超过2次以上的"网络故障"则重启系统, 这两个脚本都是用while死循环体来控制时间间隔. 这两个脚本可以通过测试.

遇到问题:
我把这两个shell脚本放到开机启动项中(/etc/rc.local)出现问题, 发现重启后这两个脚本只有pingReboot1.sh的线程启动了, 而第二个未启动.

下面是我写的shell脚本命令:

  1. #!/bin/sh -e
  2. #
  3. # rc.local
  4. #
  5. /home/ken/pingReboot1.sh
  6. /home/ken/pingReboot2.sh
  7. exit 0
复制代码
详细
下面是第一个脚本单独执行的情况, while死循环, 没ping到百度就报了错(我关闭了网络), 在终端执行后就是一直卡住(因为是死循环), 我要打开新一个终端才能运行第二个脚本pingReboot2.sh.
  1. root@ubuntu:/home/ken# ./pingReboot1.sh
  2. ping: unknown host www.baidu.com
复制代码
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP