2014-11-08 110 views
2

我试图建立一个实时聊天应用程序与Laravel 4如下所述:https://xuri.me/2014/09/08/laravel-4-real-time-chat.html主管无法启动共享主机

我有Hostmonster的共享的托管帐户与专用的IP地址。我可以通过SSH连接到Web服务器,并使用Artisan命令启动BrainSocket棘轮WebSocket服务器,并在端口8080上运行它。但是,Hostmonster的PHP进程超时时间为2小时。

我可以通过运行Artisan命令来启动WebSocket Server作为使用Supervisor的PHP守护进程来避免这种情况。如果停止,Supervisor也会自动重新启动WebSocket服务器。我的目标是让WebSocket服务器与Supervisor一起运行,使用如下所示:https://xuri.me/2014/09/09/run-brainsocket-laravel-artisan-command-in-supervisor.html

我使用此方法成功安装了Python(2.7.8)。我使用easy_install方法安装了Setuptools的Supervisor。我测试了Supervisor成功安装在Python中。我创建了一个Supervisor配置文件(supervisord.conf)。

.bashrc文件的部分显示的Python BINDIR和PYTHONPATH:

出口PYTHONPATH = $ HOME/Python的/ lib目录/ python2.7/site-packages中:$ PYTHONPATH
出口PATH = $ HOME /蟒蛇/斌:$ PATH

当我进入在Python BINDIR了“supervisord”命令,主管无法启动,并且我收到以下错误:

回溯(最近通话最后一个): 文件“/home3/thecdeor/python/bin/supervisord“,第9行,在 load_entry_point('supervisor == 3.1.3','console_scripts','supervisord')()
File”/ home3/thecdeor/python/lib /python2.7/site-packages/supervisor-3.1.3-py2.7.egg/supervisor/supervisord.py“,行366,在main go(选项)
文件”/ home3/thecdeor/python/lib/“/ home3/thecdeor/python/lib/python2.7/site-packages/supervisor-3.1.3-py2.7.egg/supervisor/supervisord.py”,第376行,在go d.main()
“ python2.7/site-packages/supervisor-3.1.3-py2.7.egg/supervisor/supervisord.py“,第70行,主rlimit_messages = self.options.set_rlimits()
文件”/ home3/thecdeor/python/lib/python2.7/site-packages/supervisor-3.1.3-py2.7.egg/supervisor/options.py“,第1316行,在set_rlimits中lf.usage(msg%locals())
KeyError:'min'。

我不明白这个错误的含义。我搜索了互联网试图找出它,但没有人似乎有这个错误。

当我在Python BINDIR文件夹进入 “supervisorctl” 命令,我收到以下错误:

UNIX:///home3/thecdeor/python/bin/tmp/supervisor.sock没有这样的文件

我对这些错误感到困惑。谁能帮忙?如果我目前的声望允许我这样做,我会发布更多链接。如果您需要更多服务器信息或任何其他信息,请让我知道。我从来没有发布过StackOverflow,我从来没有像这样的问题,所以我不太确定要发布什么和多少信息。

回答

2

我有同样的问题,它证明是一个问题,我的系统中可以创建的最大进程数量。该号码在参数minprocs中指定,该部分在supervisord中定义,其中supervisor.conf

默认情况下,管理员将此参数设置为200,在我的情况下,它代表某个进程可以在我的系统中创建的进程的硬性限制。正因为如此,在调用功能:resource.setrlimit(resource, limits)方法的类ServerOptions选项模块(options.py文件)中所定义的set_rlimits内引发异常ValueError异常

解决方案。错误消息不是非常丰富,甚至误导。无论如何,为了解决这个问题,我减少了主管可以在我的系统中创建的最大进程数量的一半。

minprocs=100 ; (min. avail process descriptors;default 200)

欲了解更多信息,你可以看看Python的资源模块的documentation

0

这只是标记jasg的答案。在set_rlimits方法中有一个在Supervisord的options.py文件中的错误

我试着设置minprocs = 100和even = 2,但收到了同样的错误。

如果你

ulimit -a | grep -E "open files|max user processes" 

打开的文件数量必须> =比你指定minprocs

最大用户进程数量必须大于您为minfds指定的数量。

下面是该修复程序的错误追踪:https://github.com/Supervisor/supervisor/issues/562

应固定在未来的版本。