2014-11-08 112 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

應固定在未來的版本。