2009-08-10 7 views
3

데몬 모드에서 '붙여 넣기'웹 서버를 시작하면 소스 파일의 타임 스탬프가 업데이트 될 때 다시로드 할 수 없게되는 것 같습니다. 여기붙여 넣기 (Python) 웹 서버 - 자동로드 문제

... 나는이 데몬을 시작하는 방법 (나를 위해) 붙여 넣기를 사용하는 주요 포인트 중 하나를 패배

cd ${project} && ../bin/paster serve --reload --daemon development.ini; cd ..; 

...입니다.

누구나이 문제를 발견하거나 내가 잘못하고있는 것을 알고 있습니까?

완료하려면 내가 변경할 파일이 컨트롤러 파일입니다.

버전은`PasteScript 1.7.3 '나는 장전는 SIGTERM과 데몬 화 된 서버와 서버가 불 투과성을 중지하기 때문에 두 가지 옵션이 기본적으로 호환되지 않는 있다고 생각

답변

5

- 이후 daemon은 프로덕션 환경에서 실행하기위한 것이고 reload은 개발/디버깅 환경을 위해, 나는 비 호환성이 큰 손실로 여겨지지 않는다고 생각합니다. 데몬 서버를 제대로 멈추고 다시 시작하도록 맞춤 설정된 사용자 정의 리로더가 확실히 개발 될 수 있다고 상상합니다. 그러나 기존 서버는 알지 못합니다.

+1

감사합니다. 내가 듣고 싶었던 것. :) – Cyrus

+1

--reload에 대한 파일 모니터는 매 초마다 모든 소스 파일을 검사하며 상당한 양의 CPU 시간을 사용할 수 있습니다. 프로덕션 환경에서는 절대로 사용하지 마십시오. mod_wsgi를 사용하면 응용 프로그램을로드하는 단일 .wsgi 스크립트의 타임 스탬프를 확인하여 다시로드 할 수 있습니다. 다른 WSGI 서버에도 Spawning과 같은 중요한 다시로드 기능이 있습니다. – joeforker

+0

* 두 옵션이 본질적으로 호환되지 않는다고 생각합니다. * [실제로] (https://bitbucket.org/ianb/pastescript/src/510ff7d7627750eb0dbbc0d36fa63c72ffa6b303/paste/script/serve.py?at=default#cl-162). –

3

나는 비슷한 문제가있어서 그 문제를 피했다. 현재 원격 호스트에서 실행중인 paster가 있지만 아직 개발 중입니다. 따라서 paster를 다시 시작하는 방법이 필요했지만 직접 수동으로 실행하는 것은 시간이 많이 걸리고 데몬은 작동하지 않았습니다. 그래서 나는 항상 서버에 쉘 윈도우를 열어 놓고 거기에 --daemon이 없으면 paster를 실행해야했습니다. 내가 그날 일을 끝내고 껍데기를 닫았을 때, 안뜰은 죽었다. 그것은 나쁘다.

나는 "화면"에서 데몬이 아닌 패스터를 실행함으로써이를 피할 수있었습니다. "screen"을 쉘에 입력하기 만하면됩니다. 일반적으로 리눅스에 따라 가상 터미널이 제공되며 원격 세션을 로그 아웃 할 때에도 계속 실행됩니다. --reload하지만 데몬이없는 새 "창"(화면)에서 일반적으로 삐져 나오는 도구를 시작한 다음 창을 분리하면 일반 셸 (detach = CTRL-A를 누른 다음 D 키를 누를 수 있습니다. "screen -r"을 입력하여 해당 화면을 다시 입력 할 수 있습니다. 죽이고 싶으면 다시 연결 (screen -r)하고 화면 내부에 CTRL-A를 입력 한 다음 K를 누릅니다.

희망이 있습니다.