4

설명서에 설명 된 루핑 구조의 수정 된 버전을 사용하여 HTTP::Daemon의 로컬 인스턴스를 실행 중입니다. 나는 사용자의 요청에 따라 루프를 종료하는 것이 가능했지만, 내 Perl 스크립트의 후속 실행은 나에게 오류 제공 :데몬을 정리하는 방법은 무엇입니까?

HTTP::Daemon: Address already in use ...propagated at /path/to/script line NNN, line 3.

무엇보다 나는 좋은 시민이 내 데몬 후 청소해야 ?

+0

이 Q는이 SO Q의 복제본입니다. http://stackoverflow.com/questions/8044590/how-do-i-clean-up-after-my-daemon – slm

답변

5

거의 없을 것입니다. 주소는 이전 인스턴스의 남은 연결에 의해 사용 중입니다. 모두 종료되면 주소가 자동으로 해제됩니다.

이 프로세스의 속도를 높이려면 바인딩하기 전에 SO_REUSEADDR 소켓 옵션을 설정할 수 있습니다. 자세한 내용은 PERL socket 설명서를 참조하십시오. "서버가 현저한 연결없이 죽으면 setsockopt() 함수를 사용하여 SO_REUSEADDR 옵션을 사용하지 않으면 즉시 포트를 재사용 할 수 없습니다."

+2

더 구체적으로 말하면,'ReuseAddr => 1'을'HTTP :: Daemon-> new'에 넘깁니다. – cjm