LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 1224|回复: 10

一死循环程序的困惑

[复制链接]
发表于 2007-6-5 11:33:03 | 显示全部楼层 |阅读模式
shell的一个很简单的程序,是个死循环,就用下面的示意吧。
circle.sh文件:

while [ 1 ]
do
  echo "sleep 100 now"
  sleep 100
done

在一个终端里手动启动这个程序, sh circle.sh & 让其在后台运行,没问题。
但是这个终端一定要用exit命令退出,如果直接关掉这个终端的窗口,程序就
停止运行了。

还有一个严重的问题。我把这个命令放在了rc.local里,让系统一启动就自动
运行,但实际的结果是,他只运行了一次,就是只有一个echo输出,他并没有
重复的在运行。我现在需要一开机就重复的运行,请问应该怎么做?
3x!
发表于 2007-6-5 13:11:23 | 显示全部楼层
关闭窗口会关闭所有窗口的子进程,所以只能是exit退出。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-6-5 19:16:32 | 显示全部楼层
谢谢楼上到。
请问第二个问题如何解决呢?
3x!
回复 支持 反对

使用道具 举报

发表于 2007-6-5 19:45:55 | 显示全部楼层
Post by xiaocong213
谢谢楼上到。
请问第二个问题如何解决呢?
3x!

你在rc.local里边怎么写的呢
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-6-6 15:28:24 | 显示全部楼层
我将circle.sh文件加了执行权限,然后拷贝到了“/usr/local/bin”下,所以rc.local里就加了一句话。
Post by mynamewsy
你在rc.local里边怎么写的呢

circle.sh
回复 支持 反对

使用道具 举报

发表于 2007-6-10 13:14:58 | 显示全部楼层
nohup /usr/local/bin/circle.sh &

试试行不行?
回复 支持 反对

使用道具 举报

发表于 2007-6-10 22:31:14 | 显示全部楼层
关闭终端前执行disown命令。
回复 支持 反对

使用道具 举报

发表于 2007-6-13 10:10:29 | 显示全部楼层
add nohup in your commands
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-6-13 21:15:56 | 显示全部楼层
3x!
试了下还是不行。
好象是根本就没有执行这个命令,一开始以为只是执行了一次,现在看好象是根本就没有执行。手动启动还是可以,可以查到一直有sleep这个进程。难道放到/etc/rc.local里的命令也不是每个都执行的?可以为什么它不执行呢?
回复 支持 反对

使用道具 举报

发表于 2007-6-13 22:30:26 | 显示全部楼层
你得看看,在系统启动的时候是否会执行/etc/rc.local这个文件
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表