아파치 재시작 실패

아파치 재시작 실패

내 서버의 로드가 높았고 killall -9 apache2를 사용하여 로드가 줄어들 때까지 Apache2를 중지했습니다. Apache2를 시작할 때 오류가 발생했습니다.

*# /etc/init.d/apache2 restart * 웹 서버 다시 시작 apache2 httpd(pid 4457?) 실행되지 않음 (98)주소가 이미 사용 중: make_sock: 주소 0.0.0.0:80에 바인딩할 수 없음 사용 가능한 청취 소켓이 없어 종료 중 down 로그를 열 수 없습니다*

나는 그런 다음 lsof | grep "*.www"를 실행하고 포트 80을 사용하여 프로세스를 종료했습니다.

제 질문은 kill all 명령을 실행한 후에도 프로세스가 어떻게 포트 80을 계속 사용할 수 있느냐는 것입니다.

답변1

http://httpd.apache.org/docs/2.2/stopping.html

Apache를 중지하거나 다시 시작하려면 실행 중인 httpd 프로세스에 신호를 보내야 합니다. 신호를 보내는 방법에는 두 가지가 있습니다. 첫째, unix kill 명령을 사용하여 프로세스에 직접 신호를 보낼 수 있습니다.시스템에서 많은 httpd 실행 파일이 실행 중인 것을 볼 수 있지만 상위 실행 파일을 제외한 어떤 실행 파일에도 신호를 보내서는 안 됩니다., 그 pid는 PidFile에 있습니다. 즉, 상위 프로세스를 제외한 어떤 프로세스에도 신호를 보낼 필요가 없다는 의미입니다. 부모에게 보낼 수 있는 신호에는 TERM, USR1, HUP, WINCH의 4가지 신호가 있습니다. 이에 대해서는 잠시 후에 설명하겠습니다.

부모에게 신호를 보내려면 다음과 같은 명령을 실행해야 합니다.

  kill -TERM `cat /usr/local/apache2/logs/httpd.pid`

내 강조.

관련 정보