freebsd 中 nohup使用时出现的奇怪问题
2014-05-29 15:08
381 查看
【现象】
在freebsd中启动rails网站;
网站的启动写到一个bat脚本中:
利用nohup启动网站: nohup /glodon/WEB_APP/CONF/rails_svnms.bat &
成功生成job, 但是没有生成nohup.out文件, 重定向也不管用(nohup /glodon/WEB_APP/CONF/rails_svnms.bat 2>1& &), 日志输出到屏幕上,网站能够正常访问。
但是窗口一旦logout或者关闭, 网站就不能访问了, 后台有rails进程仍然正常运行,能够检测到日志变化,就是网站无法访问。
总不能一直开着窗口吧,郁闷了一上午~~~~~~~~~~~~
【原因】
我执行的是一个脚本文件,它里面还调了各种执行文件和应用程序,而且它里面调程序都没用用nohup &这种方式的,原因就处在这。
原因应该是这样,由于脚本中调用的脚本未加后台符(&)运行时需要另外调用一个新的Shell作为运行环境,而这个Shell却无法屏蔽父Shell退出时发出的quit signal,所以会导致进程被杀死,解决方法就是加后台符,这样进程运行无需启用新的Shell。
【解决方案】
把脚本里面把所有的地方都加上&,并把输出重定向到文件
即:
在freebsd中启动rails网站;
网站的启动写到一个bat脚本中:
#/glodon/WEB_APP/CONF/rails_svnms.bat #!/bin/sh cd /glodon/WEB_APP/SVNMS /usr/local/bin/rails s mongrel -e production -b 127.0.0.1
利用nohup启动网站: nohup /glodon/WEB_APP/CONF/rails_svnms.bat &
成功生成job, 但是没有生成nohup.out文件, 重定向也不管用(nohup /glodon/WEB_APP/CONF/rails_svnms.bat 2>1& &), 日志输出到屏幕上,网站能够正常访问。
但是窗口一旦logout或者关闭, 网站就不能访问了, 后台有rails进程仍然正常运行,能够检测到日志变化,就是网站无法访问。
总不能一直开着窗口吧,郁闷了一上午~~~~~~~~~~~~
【原因】
我执行的是一个脚本文件,它里面还调了各种执行文件和应用程序,而且它里面调程序都没用用nohup &这种方式的,原因就处在这。
原因应该是这样,由于脚本中调用的脚本未加后台符(&)运行时需要另外调用一个新的Shell作为运行环境,而这个Shell却无法屏蔽父Shell退出时发出的quit signal,所以会导致进程被杀死,解决方法就是加后台符,这样进程运行无需启用新的Shell。
【解决方案】
把脚本里面把所有的地方都加上&,并把输出重定向到文件
即:
#/glodon/WEB_APP/CONF/rails_svnms.bat #!/bin/sh cd /glodon/WEB_APP/SVNMS /usr/local/bin/rails s mongrel -e production -b 127.0.0.1>> log/production.log 2>&1 &
相关文章推荐
- freebsd 中 nohup使用时出现的奇怪问题
- 在java中ACCESS模糊查询出现的奇怪问题,使用%不行的解决方案。
- 使用SQL Developer导入文件时出现的一个奇怪的问题
- 使用gedit打开grub.conf时出现的奇怪问题
- 使用.NET部署程序出现的奇怪问题
- discuz 海量信息公司的保10洁 2.1.0使用了短php标签在不支持<?的配置上出现奇怪问题
- 解决OpenCV在使用摄像头捕捉视频流时出现的一个奇怪问题
- 工作中问题整理1----使用scanf出现的奇怪内存越界问题
- 使用IBATIS的奇怪问题,别走我的老路:)
- 使用copy出现的问题
- 使用DotNet以来一直都有出现这样的问题
- VC6.0使用Greta的工程在VS2005中编译出现的问题:C2079,LNK1123,CVT1100等等
- eclipse使用中出现的一个问题
- Enterprise Library- Data Block使用oracle存储过程,字符串参数传入值为""时出现问题的解决
- 排序出现的一个奇怪的问题,找出原因后差点吐血
- Enterprise Library- Data Block使用oracle存储过程,字符串参数传入值为""时出现问题的解决
- 使用hibernate心得——字符串超长的解决办法(setCharacterStream出现顺序问题)
- 在Weblogic+JBuilder7使用时的奇怪问题
- 如何解决ADO.NET访问Access数据库出现"操作必须使用一个可更新的查询"的问题(非原创,摘自书中)
- 使用VC6调用DLL出现的问题(使用LoadLibrary返回值为0)