감독자 HTTP 서버 포트 문제


65

몇 가지 프로세스를 관리하기위한 감독자 설정이 있습니다. 서버를 부팅 할 때 완벽하게 작동하지만 서버를 중지하고 다시 시작하려고하면 실패 하고이 오류 메시지가 나타납니다.

 * Supervisor 데몬 관리자 시작 중 ...
오류 : 다른 프로그램이 이미 HTTP 서버 중 하나가 사용하도록 구성된 포트에서 수신 대기 중입니다. 감독자를 시작하기 전에이 프로그램을 먼저 종료하십시오.
도움이 필요하면 / usr / bin / supervisord -h를 사용하십시오.
   ...불합격!

포트 80에서 nginx를 실행하고 포트 8000, 8001, 8002, 8003에서 4 대의 웹 서버를 실행 중입니다.

아무도 무슨 일이 일어나고 있는지 알고 있습니까?

재부팅하면 모든 것이 잘 작동합니다.

답변:


91

이것도 만났습니다. 다음 중 하나를 수행하여 수정했습니다.

sudo unlink /tmp/supervisor.sock

sudo unlink /var/run/supervisor.sock

이 .sock 파일은 /etc/supervisord.conf의 [unix_http_server]의 파일 구성 값 (기본값은 /tmp/supervisor.sock 또는 /var/run/supervisor.sock)에 정의되어 있습니다.

이것이 미래의 누군가를 돕기를 바랍니다.


12
@sdolan 와우 그것은 나를 도왔다! 나는 /var/run/supervisor.sock을 제거하고 Debian Stable
Abhishek A

2
unlink를 실행하기 전에 find / -name supervisor.sock을 실행하십시오
-debian

2
스크립트가 자동으로 연결을 끊고 다시 시도 할 수 있도록 관리자가 오류 코드로 종료되지 않는 이유는 무엇입니까?
탈 바이스

여기서 조심하십시오. 연결을 해제 한 후 "ps -ef | grep supervisord"를 실행하면 이전 프로세스가 여전히 실행되고 있음을 알 수 있습니다. "<process_id>"를 죽일 수도 있습니다. 편집 : 이것은 우분투 14.04를 사용하는 동안의 경우였습니다.
jball037

1
unlink 명령 후 수퍼바이저를 다시 시작하려고하지만 .sock이 누락되었습니다. unix:///tmp/supervisor.sock no such file. 그래서 내가해야 할 일이 있습니다.
Robert

7

lsof를 사용하여 해당 포트에서 수신중인 프로세스를 찾습니다.

lsof -i tcp | grep LISTEN

일단 프로세스가 완료되면 반은 끝났습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.