2012-10-24 15:23:51,510 WARN received SIGHUP indicating restart request2012-10-24 15:23:51,511 INFO waiting for app-server to dIE2012-10-24 15:23:54,650 INFO waiting for app-server to dIE2012-10-24 15:23:57,653 INFO waiting for app-server to dIE2012-10-24 15:24:00,657 INFO waiting for app-server to dIE2012-10-24 15:24:01,658 WARN killing 'app-server' (28981) with SIGKILL2012-10-24 15:24:01,659 INFO stopped: app-server (terminated by SIGKILL)
所以我有两个问题.第一个是,有人知道为什么主管重启SIGHUP?我找不到任何解释,并且没有可以关闭此行为的命令行选项.第二个问题是,我们如何解决我们面临的问题?我们尝试使用nohup启动主管,但仍然收到SIGHUP.奇怪的是,当我登录服务器,手动启动主管并注销时,不会发生这种情况.
以下是buildout生成的supervisor脚本:
#!/usr/bin/python2.6import syssys.path[0:0] = ['/home/username/.buildout/eggs/supervisor-3.0b1-py2.6.egg','/home/username/.buildout/eggs/meld3-0.6.9-py2.6.egg','/home/username/.buildout/eggs/distribute-0.6.30-py2.6.egg',]import sys; sys.argv.extend(["-c","/home/username/app_directory/parts/supervisor/supervisord.conf"])import supervisor.supervisordif __name__ == '__main__':sys.exit(supervisor.supervisord.main())
以下是supervisor的配置文件,也是由buildout生成的:
[supervisord]childlogdir = /home/username/app_directory/var/loglogfile = /home/username/app_directory/var/log/supervisord.loglogfile_maxbytes = 50MBlogfile_backups = 10loglevel = infopIDfile = /home/username/app_directory/var/supervisord.pIDumask = 022nodaemon = falsenocleanup = false[unix_http_server]file = /home/username/app_directory/supervisor.sockusername = usernamepassword = apasswdchmod = 0700[supervisorctl]serverurl = unix:///home/username/app_directory/supervisor.sockusername = usernamepassword = apasswd[rpcinterface:supervisor]supervisor.rpcinterface_factory=supervisor.rpcinterface:make_main_rpcinterface[program:app-server]command = /home/username/app_directory/bin/gunicorn --bind 0.0.0.0:5000 app:wsgiprocess_name = app-serverdirectory = /home/username/app_directory/binpriority = 50redirect_stderr = falsedirectory = /home/username/app_directory
我们不想在真正理解问题之前安装修补版本的主管,因此任何信息都将受到高度赞赏.
提前致谢
解决方法 在SIGHUP上重新启动或重新加载是linux系统编程中的常见做法.问题是为什么你在部署结束后获得SIGHUP.由于supervisor正确守护自身(因为你可以启动并注销并且它可以工作),重新加载信号可以通过构建机器人发送给主管,指示webapp需要重新启动,因为代码已经改变.因此,主管启动应用程序关闭,以便使用新代码启动应用程序.但应用程序不会在给定的超时时间内停止,并且主管决定应用程序挂起并用SIGKILL杀死它.
要解决问题,您需要教导应用程序在主管要求时关闭.
总结以上是内存溢出为你收集整理的使用结构和管理程序部署Web应用程序 – SIGHUP导致服务器终止全部内容,希望文章能够帮你解决使用结构和管理程序部署Web应用程序 – SIGHUP导致服务器终止所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)