新足迹

 找回密码
 注册

精华好帖回顾

· 红石头归来的经验分享。 (2011-7-17) gifox · . (2007-3-20) snowberry
· 澳洲情缘---六弟(下) (2007-7-15) 安远翔 · 溜溜达达 Vivid Sydney 2014 采风 (多图) (2014-6-8) feihong
Advertisement
Advertisement
查看: 1572|回复: 13

奇怪的Nohup问题 [复制链接]

发表于 2013-10-30 13:20 |显示全部楼层
此文章由 righttang 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 righttang 所有!转贴必须注明作者、出处和本声明,并保持内容完整
本帖最后由 righttang 于 2013-10-30 12:22 编辑

真是什么奇怪的事都能碰到,还是我脑子短路了
我写了一个脚本。
test.sh
内容是
#!/bin/sh

while :
do
    echo "Press Ctrl + C to stop.."
    sleep 1
done

然后chmod 755 test.sh
再nohup ./test.sh &
于是echo的结果就到nohup.out里去了

我开着putty,看nohup.out文件的大小,是在不停的增长的,说明程序在后台运行

然后妖孽的是,一关putty,这个 nohup.out文件大小增长就停了。。。。说明进程被关闭了

后台挂起服务不都是nohup加上一个&么,我错哪了- -
Advertisement
Advertisement

发表于 2013-10-30 13:33 |显示全部楼层
此文章由 javed 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 javed 所有!转贴必须注明作者、出处和本声明,并保持内容完整
你没有错, Unix/Linux 就是这样的, 你的PC和Unix/Linux Server断了以后, Server就会停掉所有通过这条连接(你的PC到Server)发起的进程, 尽管你发起该进程的时候是指明了要后台运行的(通过&).

可以考虑把该脚本放在crontab里运行,或者先远程桌面到一台windows server,然后在那台windows server上运行putty连到Unix/Linux server 运行该脚本. 然后再断掉你的PC到windoes server 的连接.

评分

参与人数 1积分 +2 收起 理由
righttang + 2 感谢分享

查看全部评分

发表于 2013-10-30 13:41 |显示全部楼层
此文章由 righttang 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 righttang 所有!转贴必须注明作者、出处和本声明,并保持内容完整
javed 发表于 2013-10-30 12:33
你没有错, Unix/Linux 就是这样的, 你的PC和Unix/Linux Server断了以后, Server就会停掉所有通过这条连接( ...

但是不对啊,我平时启动weblogic 的时候,不就是nohup ....startwebligic.sh & 的呢,他的脚本有啥特殊的地方么

退役斑竹 2007 年度奖章获得者 2008年度奖章获得者 特殊贡献奖章 参与宝库编辑功臣

发表于 2013-10-30 13:42 |显示全部楼层
此文章由 黑山老妖 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 黑山老妖 所有!转贴必须注明作者、出处和本声明,并保持内容完整
可以VNC到server上,开console运行东西。

评分

参与人数 1积分 +2 收起 理由
righttang + 2 感谢分享

查看全部评分

发表于 2013-10-30 13:48 |显示全部楼层
此文章由 javed 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 javed 所有!转贴必须注明作者、出处和本声明,并保持内容完整
这个要看"startwebligic.sh"里的具体内容了. 它里面可能会通过不同的方法调用其它程序, 这些被调用的程序不受你断开putty的影响. 不过一旦你断掉putty后, 再重新打开putty连上去, 你应该看不到"startwebligic.sh"这个进程本身了, 这个可以通过"ps -ef | grep startwebligic.sh" 来证实.

发表于 2013-10-30 13:57 |显示全部楼层
此文章由 javed 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 javed 所有!转贴必须注明作者、出处和本声明,并保持内容完整
javed 发表于 2013-10-30 13:48
这个要看"startwebligic.sh"里的具体内容了. 它里面可能会通过不同的方法调用其它程序, 这些被调用的程序不 ...

或者你可以这样, 在脚本"startwebligic.sh"的最后面加上你原来的那段.
while :
do
    echo "Press Ctrl + C to stop.."
    sleep 1
done

当脚本"startwebligic.sh"运行到这里的时候,你应该可以看到nohup.out文件开始增大, 然后你断掉putty再看看该文件是不是还在增大.
Advertisement
Advertisement

发表于 2013-10-30 14:10 |显示全部楼层
此文章由 righttang 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 righttang 所有!转贴必须注明作者、出处和本声明,并保持内容完整
javed 发表于 2013-10-30 12:57
或者你可以这样, 在脚本"startwebligic.sh"的最后面加上你原来的那段.
while :
do

谢谢,我在另外一个系统上试了一下

我那个脚本,在断开putty的情况下test.sh脚本仍然在运行
[oracle@p1dv2vidcon01 ~]$ ps -elf|grep test.sh
0 S oracle   20865     1  0  75   0 - 15973 wait   14:04 ?        00:00:00 /bin/sh ./test.sh
0 S oracle   21038 20941  0  78   0 - 15307 pipe_w 14:05 pts/1    00:00:00 grep test.sh

putty断开2次,连接2次,nohup.out一直在不停的增大。。。
我怀疑是linux系统的问题,一个是redhad,一个是busybox。。。。我比较下版本吧

发表于 2013-10-30 14:52 |显示全部楼层
此文章由 Fernando 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 Fernando 所有!转贴必须注明作者、出处和本声明,并保持内容完整
righttang 发表于 2013-10-30 13:10
谢谢,我在另外一个系统上试了一下

我那个脚本,在断开putty的情况下test.sh脚本仍然在运行

一般公司里都用redhat分支,suse也用过,nohup & 都能在putty退出后继续运行。你这个有问题的版本是busybox吗?

评分

参与人数 1积分 +2 收起 理由
righttang + 2 谢谢

查看全部评分

like hell

发表于 2013-10-30 15:00 |显示全部楼层
此文章由 righttang 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 righttang 所有!转贴必须注明作者、出处和本声明,并保持内容完整
本帖最后由 righttang 于 2013-10-30 14:01 编辑
Fernando 发表于 2013-10-30 13:52
一般公司里都用redhat分支,suse也用过,nohup & 都能在putty退出后继续运行。你这个有问题的版本是busyb ...


是的,有问题的是busybox
不过之前那个版本倒是没问题,这次新装了一台,就出问题了。。。

我在busybox上加装了GNU的nohup。好像还是一样。。。。。

话说问一个别的问题
init -q这个命令是啥?我以为是重启命令,结果一敲。。。整个机器就没反应了- -
我一定要去现场拔电重启么。。。。

发表于 2013-10-30 15:10 |显示全部楼层
此文章由 12oz 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 12oz 所有!转贴必须注明作者、出处和本声明,并保持内容完整
Nohup屏蔽了信SIGHUP,这是标准的做法,这样putty退出不会影响程序。你的busybox应该没有遵守这个设计

评分

参与人数 1积分 +2 收起 理由
righttang + 2 谢谢

查看全部评分

头像被屏蔽

禁止访问

发表于 2013-10-30 15:20 |显示全部楼层
此文章由 lingg 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 lingg 所有!转贴必须注明作者、出处和本声明,并保持内容完整
righttang 发表于 2013-10-30 14:00
是的,有问题的是busybox
不过之前那个版本倒是没问题,这次新装了一台,就出问题了。。。

这个。。。要小心

应该是 init q ?
这个是不重启,RELOAD inittab 文件的配置

想办法找远程的console吧

可以用screen 跑脱机的脚本

评分

参与人数 1积分 +2 收起 理由
righttang + 2 谢谢

查看全部评分

Advertisement
Advertisement

发表于 2013-10-30 16:11 |显示全部楼层
此文章由 joerkky 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 joerkky 所有!转贴必须注明作者、出处和本声明,并保持内容完整
你是log off还是直接断开ssh连接,这个也是有区别的

发表于 2013-10-30 16:15 |显示全部楼层
此文章由 joerkky 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 joerkky 所有!转贴必须注明作者、出处和本声明,并保持内容完整
直接叉掉有可能会发送SIGHUP给你的进程,logout默认不会,但是也取决于shopt的属性

评分

参与人数 1积分 +2 收起 理由
righttang + 2 感谢分享

查看全部评分

发表于 2013-10-30 19:03 |显示全部楼层
此文章由 righttang 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 righttang 所有!转贴必须注明作者、出处和本声明,并保持内容完整
screen不错,用screen解决了问题,这个nohup真是浪费了我半天时间

发表回复

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

本版积分规则

Advertisement
Advertisement
返回顶部