2014-11-08 2 views
2

공유 호스트에서 시작할 수 없습니다 : https://xuri.me/2014/09/08/laravel-4-real-time-chat.html감독자는 여기에 설명 된대로 내가 Laravel 4 설정에 실시간 채팅 응용 프로그램을 시도하고있다

I 전용 IP 주소 Hostmonster이의 공유 호스팅 계정이 있습니다. 웹 서버에 SSH를 넣고 Artisan 명령으로 BrainSocket Ratchet WebSocket 서버를 시작하여 포트 8080에서 실행합니다. 그러나 Hostmonster는 PHP 프로세스 시간 초과가 2 시간입니다.

나는 Artisan 명령을 실행하여 WebSocket Server를 Supervisor를 사용하여 PHP 데몬으로 시작함으로써이를 방지 할 수 있습니다. Supervisor는 WebSocket 서버가 중지되면 자동으로 다시 시작합니다. 내 목표는 다음과 같은 것을 사용하여 관리자가 WebSocket Server를 실행하는 것입니다. https://xuri.me/2014/09/09/run-brainsocket-laravel-artisan-command-in-supervisor.html

이 방법으로 Python (2.7.8)을 성공적으로 설치했습니다. easy_install 메소드를 사용하여 Setuptools와 함께 Supervisor를 설치했습니다. Supervisor가 Python에 성공적으로 설치되었는지 테스트했습니다. 관리자 설정 파일 (supervisord.conf)을 만들었습니다. 파이썬 BINDIR와 PYTHONPATH를 보여주는의 .bashrc 파일의

부 :

수출 PYTHONPATH = $ 홈/파이썬/lib 디렉토리/python2.7/사이트 패키지 : $의 PYTHONPATH
수출 PATH = $ 홈/파이썬/빈 : $ PATH에

내가 파이썬 BINDIR에서 "supervisord"명령을 입력하면, 관리자가 시작되지 나는 다음과 같은 오류 얻을 :

역 추적 (마지막으로 가장 최근 통화) : 파일을 "/home3/thecdeor/python/lib 디렉토리에있는 "home3/thecdeor/python/bin/supervisord", 행 9, load_entry_point ('관리자 == 3.1.3', 'console_scripts', 'supervisord')
"/ home3/thecdeor/python/lib /"/ home/options "
파일"/ home/thecdeor/python/lib/
파일 "/ home3/thecdeor/python/lib/python2.7/site-packages/supervisor-3.1.3-py2.7.egg/supervisorord.py", 줄 376, d.main() python2.7/site-packages/supervisor-3.1.3-py2.7.egg/supervisorord.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 se lf.usage (msg % locals())
KeyError : '최소'입니다.

이 오류의 의미를 이해하지 못합니다. 내가 알아 내려고 노력하는 인터넷을 검색했지만 아무도이 오류가있는 것 같습니다.

유닉스 : 그런 파일을 ///home3/thecdeor/python/bin/tmp/supervisor.sock하지 내가 파이썬 BINDIR 폴더의 "supervisorctl"명령을 입력하면

, 나는 다음과 같은 오류가

나는 이러한 오류에 당황 스럽다. 누구든지 도와 줄 수 있습니까? 현재의 명성으로 인해 그렇게 할 수 있다면 더 많은 링크를 게시 할 것입니다. 서버 정보 나 기타 정보가 더 필요하시면 알려주십시오. 나는 전에 StackOverflow에 게시 한 적이 없으며 이렇게 문제가 생겨본 적이 없어서 게시 할 내용과 내용이 확실하지 않습니다.

답변

2

나는 동일한 문제가있어서 관리자가 시스템에서 만들 수있는 최대 프로세스 수에 문제가있는 것으로 나타났습니다.이 번호는 minprocs supervisordsupervisor.conf에 정의 된 매개 변수에 지정됩니다.

기본적으로 수퍼바이저는이 매개 변수를 200으로 설정합니다. 제 경우에는 특정 프로세스가 시스템에서 만들 수있는 프로세스의 하드 제한을 나타냅니다. 이 때문에, 함수 호출 :있어서 옵션 모듈 (options.py 파일)에 정의 된 클래스의 ServerOptionsset_rlimits 내의 resource.setrlimit(resource, limits) 예외 ValueError를을 일으킨다.

솔루션. 오류 메시지는 유익하지 않으며 오해의 소지가 있습니다. 어쨌든 문제를 해결하기 위해 관리자가 시스템에서 만들 수있는 프로세스의 최대 수를 절반으로 줄였습니다.

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

은 자세한 내용은 파이썬의 자원 모듈의 documentation 좀 걸릴 수 있습니다.

0

이것은 jasg의 답변에 태그를 달고 있습니다. Supervisord의 options.py 파일에 set_rlimits 방법의 버그가 있습니다

minprocs = 100 및 even = 2로 설정했지만 동일한 오류가 발생했습니다.

당신이 할 경우 열린 파일 수량이 있어야합니다

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

> = 당신이 minprocs에 대해 지정하는 것보다.

최대 사용자 프로세스 수량은 minfds에 지정한 값보다 커야합니다. https://github.com/Supervisor/supervisor/issues/562

그것은 다음 버전에서 수정되어야한다 : 여기

이 수정의 bugtracker입니다.

관련 문제