haproxy가 시작되지 않습니다


20

새로운 Ubuntu 10.04 서버를 설치하고 루트로 로그인하여 apt-get을 사용하여 haproxy를 설치했습니다.

haproxy를 데몬으로 직접 실행할 수 있지만 /etc/init.d/haproxy start아무 일도 일어나지 않으면 오류 메시지조차 없습니다.

netstat -a 내가 haproxy와 균형을 잡으려는 http 포트를 사용하고 있지 않음을 보여줍니다 ...

아이디어?

편집하다

  1. 나는 apt-get install haproxy이것이 결국 이것을 말한다.

    update-rc.d : 경고 : /etc/init.d/haproxy에 LSB 정보가 없습니다. update-rc.d : http://wiki.debian.org/LSBInitScripts 참조

  2. /etc/default/haproxy 말한다 ENABLED=1

에 대한 디버깅 출력 sh -xv /etc/init.d/haproxy start

#!/bin/sh
#
# chkconfig: - 85 15
# description: HA-Proxy is a TCP/HTTP reverse proxy which is particularly suited \
#              for high availability environments.
# processname: haproxy
# config: /etc/haproxy.cfg
# pidfile: /var/run/haproxy.pid

# Source function library.
if [ -f /etc/init.d/functions ]; then
  . /etc/init.d/functions
elif [ -f /etc/rc.d/init.d/functions ] ; then
  . /etc/rc.d/init.d/functions
else
  exit 0
fi
+ [ -f /etc/init.d/functions ]
+ [ -f /etc/rc.d/init.d/functions ]
+ exit 0
root@li267-63:~#

sh -xv /etc/init.d/haproxy start
João Pinto

답변:


39

편집 /etc/default/haproxy하고 그 ENABLED=1안에 줄이 있는지 확인하십시오 .

기본값은 ENABLED = 0입니다. 이 작업은 haproxy에 정상적인 기본 구성이 없으므로 먼저 구성한 다음 활성화해야합니다.


ENABLED = 1로 설정했지만 여전히 아무것도 없습니다.
Assaf Lavie

Assaf, 여전히 haproxy를 구성해야합니다. 구성 파일이 올바르지 않으면 시작되지 않으며 시스템 로그에 오류를 인쇄했을 수 있습니다 (/var/log/daemon.log 및 / var / log / syslog 확인).
SpamapS

2
자세한 메시지없이 시작되지 않는 이유는 무엇입니까? 정말 혼란 스러워요!
Nikolay Fominyh

1
@NikolayFominyh 동의합니다, 이것은 혼란 스럽습니다! 매 8 개월마다 새로운 haproxy를 설정해야하기 때문에이 스레드를 계속해서 찾게되며 / etc / default / *에서 서비스를 활성화 해야하는 요구 사항을 항상 잊어 버립니다. 비활성화 된 서비스를 시작하려고 할 때 syslog에 무언가가 나타나기를 바랍니다.
Jay Taylor

3

"테스트"행이 항상 실패하여 ENABLED 설정이 효과가없는 동일한 문제가있었습니다. 이유를 찾았습니다 : /etc/default/haproxyinit 스크립트 대신 편집해야합니다 .


3

나는 이것을 1 년 된 실로 알고있다. 그러나 나는 단지 내가 배운 것을 공유하려고 노력한다 ..

/etc/init.d/haproxy reload 또는 사용 service haproxy reload하면 다시로드됩니다 .. 결국 우리는 바로 시작하고 싶습니다.)


2

비슷한 문제가 있습니다. 이미 ENABLED = 1을 설정했지만 기본 update-rc.d 구성은 haproxy를 K20 (rc0 | 1 | 6.d) 및 S20 (rc2 | 3 | 4 | 5.d)에 배치하는 것으로 보입니다. 이것은 네트워킹 전에 시작하려고 시도한다는 것을 의미하므로 내 경우에는 이것을 boot.log에 얻습니다.

 * haproxy haproxy 시작 [ALERT] 346/160552 (927) : 프록시 haproxy 시작 : 소켓을 바인딩 할 수 없습니다
[ALERT] 346/160552 (927) : 프록시 프록시 시작 : 소켓을 바인딩 할 수 없습니다
[ALERT] 346/160552 (927) : 프록시 프록시 시작 : 소켓을 바인딩 할 수 없습니다
[ALERT] 346/160552 (927) : 프록시 프록시 시작 : 소켓을 바인딩 할 수 없습니다
[ALERT] 346/160552 (927) : 프록시 프록시 시작 : 소켓을 바인딩 할 수 없습니다
[ALERT] 346/160552 (927) : 프록시 프록시 시작 : 소켓을 바인딩 할 수 없습니다
[ALERT] 346/160552 (927) : 프록시 프록시 시작 : 소켓을 바인딩 할 수 없습니다
                                                                         [실패]

시작 번호를 35로 변경하면 문제가 해결되는 것처럼 보이지만 36은 더 안전하다고 생각합니다 (네트워킹의 이전 숫자는 35이므로 그 후에 시작하는 것이 가장 좋습니다). 그래서 시도하십시오 :-

update-rc.d -f haproxy 제거
update-rc.d haproxy start 35 2 3 4 5. 20 0 6 중지하십시오.

그런 다음 재부팅하면 정렬됩니다. 패키지 관리자는 실제로 이것을 생각해야합니다.


SiBaz는 어떤 버전의 Ubuntu를 실행하고 있는지 확실하지 않지만 Lucid에서 문제는 시스템은 rc-sysinit가 기본 실행 레벨 (2)로 전환하기 전에 upstart를 통해 네트워킹이 시작됩니다. 이는 / etc / rc2를 실행합니다. .d 스크립트.
SpamapS

나는 lucid도 사용하고 있으며 rc2.d /../ init.d / haproxy를 통해 haproxy가 시작되었을 때 네트워킹이 시작되지 않았 음을 확신 할 수 있습니다. 또한 제안한 내용이 효과가 없으므로 rc 레벨 2 3 4 5에 네트워킹을 추가하여 haproxy 전에 시작해야한다는 것을 알았습니다 .update-rc.d 네트워킹 시작 35 2 3 4 5 해결책은 시작 스크립트를 추가하는 것이므로 해킹하십시오. 그 효과에 대한 설명으로 haproxy 패키지에 대한 버그를 만들었습니다.

2

우분투 유지 관리 패키지를 처음 설치 한 후 (필요한 기능을 지원하지 않는 버전을 실현 한 후) 최신 버전의 haproxy를 설치 한 후에도 동일한 문제가 발생했습니다. 실제로 내 실행 파일이 / usr / local / sbin / haproxy에있을 때 내가 끝내는 init.d 스크립트는 / usr / sbin / haproxy를 가리 켰습니다. 앞에서 언급 한 디버그 출력 "sh -xv /etc/init.d/haproxy start"는이 문제를 매우 분명하게 만들었습니다.


나는 이것을 두 번 이상 찬성하고 싶습니다.
Balázs Németh

2

루트 또는 sudo로 시작하려고 했습니까? 당신이 나와 같다면, 때로는 명령 앞에 sudo를 추가하는 것을 잊어 버립니다. sudo없이 모든 명령을 시도했지만 설명대로 실패했습니다. 그러나 sudo가 haproxy.cfg설치 의 기본 파일을 사용하여 앞에 있으면 이제 문제없이 실행됩니다. 올바른 구성으로도 sudo 없이는 가지 않을 것이라고 생각했습니다.


: 예, 루트로 수행
아사 프 라비에게

1

방금 lucid의 haproxy init.d 스크립트와 동일한 문제가 발생했습니다. 나는 haproxy를 시작할 수 없었기 때문에 그것을 찾아서 /etc/init.d/haproxy 스크립트에서 ENABLED 변수를 변경해야한다는 것을 알았습니다.

그러나이 변수를 변경해도 전혀 도움이되지 않는 이유는 다음과 같습니다. /etc/init.d/haproxy에서 몇 줄 아래로 ENABLED 변수가 다음 줄로 스크립트에 의해 검사됩니다. test "$ ENABLED"! = "0" || 종료 0.이 테스트는 항상 내 시스템에서 실패한다는 것을 알았습니다. 따라서 나머지 스크립트는 실행되지 않습니다.

왜이 테스트 라인이 제대로 작동하지 않는지 잘 모르겠습니다. 그러나 우리는 어쨌든 haproxy를 사용하기를 원하기 때문에 왜 귀찮게 검사합니까? ...이 테스트 라인을 주석 처리하면 나에게 도움이되었습니다.

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


/ etc / default / haproxy
UpTheCreek

0

나는 또한 scipt를 쳐다 보았고 ENABLED=1init-script 내에 정의 되었지만 왜 작동하지 않는지 알 수 없었습니다 .

결국 조금 아래를 살펴보면 /etc/default/haproxy-file테스트가 수행되기 직전에 소스가 제공되므로 init-script 자체의 set-variable을 덮어 씁니다.


0

데비안 VM과 함께 푸른에서 같은 문제가 발생했습니다. 매우 간단합니다. haproxy의 init 스크립트는 런타임 종속성을 사용합니다. 이전 시스템에서는 update-rc.d가 사용되었지만 최신 시스템에서는 insserv가 사용됩니다. https://wiki.debian.org/LSBInitScripts/DependencyBasedBoot

따라서 update-rc.d를 사용하여 최신 시스템에서 haproxy 서비스를 추가 한 경우 다음을 수행해야합니다.

$ sudo update-rc.d -f haproxy 제거

$ sudo insserv haproxy

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