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ください

  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開始
ジョアン・ピント

回答:


39

編集して/etc/default/haproxy、次のような行があることを確認しますENABLED=1

デフォルトはENABLED = 0です。これは、haproxyに適切なデフォルト設定がないため、最初に設定してから有効にする必要があるためです。


私は...まだ何も、1 =有効になっていません設定
アサフラヴィー

Assaf、まだhaproxyを設定する必要があります。構成ファイルが正しくない場合、起動せず、おそらくシステムログにエラーが出力されます(/var/log/daemon.logおよび/ var / log / syslogを確認してください)
SpamapS

2
冗長メッセージなしで起動しないのはなぜですか?本当に混乱しています!
ニコライ・フォミニー

1
@NikolayFominyh私は同意します、これは紛らわしいです!8か月ごとごとに新しいhaproxyをセットアップする必要があるため、最終的にこのスレッドを何度も見つけます。/etc/default/*でサービスを有効にする要件を常に忘れています。無効化されたサービスを開始しようとすると、syslogに何かがポップアップすることを望みます。
ジェイテイラー

3

「テスト」行が常に失敗するため、ENABLEDを設定しても効果がないという同じ問題がありました。理由が見つかりました:/etc/default/haproxyinitスクリプトの代わりに編集する必要があります。


3

私はこの1年前のスレッドを知っています。しかし、私が学んだことを共有しようとしています。

/etc/init.d/haproxy reload またはservice haproxy reloadを使用すると、正常にリロードされます。結局、正しく開始したいだけです;)


2

同様の問題があります。すでにENABLED = 1を設定していますが、デフォルトのupdate-rc.d構成では、K20(rc0 | 1 | 6.d)およびS20(rc2 | 3 | 4 | 5.d)にhaproxyを配置するようです。つまり、ネットワークの前に起動しようとするので、私の場合はboot.logでこれを取得します。

 * haproxy haproxyの開始[ALERT] 346/160552(927):プロキシhaproxyの開始:ソケットをバインドできません
[アラート] 346/160552(927):プロキシhaproxyの開始:ソケットをバインドできません
[アラート] 346/160552(927):プロキシhaproxyの開始:ソケットをバインドできません
[アラート] 346/160552(927):プロキシhaproxyの開始:ソケットをバインドできません
[アラート] 346/160552(927):プロキシhaproxyの開始:ソケットをバインドできません
[アラート] 346/160552(927):プロキシhaproxyの開始:ソケットをバインドできません
[アラート] 346/160552(927):プロキシhaproxyの開始:ソケットをバインドできません
                                                                         [失敗します]

スタートアップ番号を35に変更することで修正できるように思えますが、36の方が安全だと思います(ネットワークの古い番号は35だったので、その後で開始するのが最善です)。だから試してください:-

update-rc.d -f haproxy remove
update-rc.d haproxy start 35 2 3 4 5。20 0 1 6を停止します。

その後、再起動すると、ソートされます。パッケージメンテナーは本当にこのことを考えるべきでした。


SiBaz、あなたが実行しているUbuntuのバージョンがわかりませんが、Lucidでは、問題があったシステムで、rc-sysinitがデフォルトのランレベル(2)に移行する前にupstartを介してネットワークが開始され、これが/ etc / rc2を実行します.dスクリプト。
SpamapS

私もlucidを使用していますが、rc2.d /../ init.d / haproxyを介してhaproxyが開始されたときにネットワークが開始されていなかったことを保証できます。また、提案したものが機能しないことに気づいたので、haproxy、update-rc.d networking start 35 2 3 4 5の前に開始するためにrcレベル2 3 4 5にネットワークを追加する必要がありました。解決策は、スタートアップスクリプトを追加することです。その結果を明確にhaproxyパッケージに対してバグを作成しました。

2

最初にubuntuで管理されたパッケージをインストールし、(バージョンが必要な機能をサポートしていなかったことに気づいた後)haproxyのppaの新しいバージョンをインストールした後、私はこの同じ問題に遭遇しました。実際に私の実行可能ファイルが/ usr / local / sbin / haproxyにあったときに、巻き上げたinit.dスクリプトは/ usr / sbin / haproxyを指していました。前述のデバッグ出力「sh -xv /etc/init.d/haproxy start」により、この問題はかなり明白になりました。


これを少なくとも2回支持したいと思います。
バラスネメス

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=1、init-scriptで定義されているにもかかわらず、なぜ動作しないのかわかりませんでした。

最終的に、少し見下ろすと/etc/default/haproxy-file、テストが実行される直前にソースが取得され、init-script自体のset-variableが上書きされることがわかります...


0

debian vmを使用して紺onで同じ問題に遭遇しました。非常にシンプルであることがわかりました。haproxyのinitスクリプトは、実行時の依存関係を使用します。古いシステムではupdate-rc.dが道でしたが、新しいシステムではinsservが使用されます:https ://wiki.debian.org/LSBInitScripts/DependencyBasedBoot

したがって、update-rc.dを使用して新しいシステムにhaproxyサービスを追加した場合は、次を実行する必要があります。

$ sudo update-rc.d -f haproxy remove

$ sudo insserv haproxy

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.