
haproxy のインスタンスをいくつか実行する必要があり、haproxy.service ファイルを更新して 2 番目のコマンド/インスタンスを追加する必要があります。Google では、同じ ExecStart= オプションにセミコロンで区切って 2 番目のコマンドを追加するように指示されましたが、これは機能しませんでした。
次のことから、追加コマンドを使用して 2 番目の ExecStart= を追加できると考えましたが、これも機能しませんでした。http://www.freedesktop.org/software/systemd/man/systemd.service.html
systemd サービス経由で haproxy の 2 つのインスタンスを実行するにはどうすればよいですか?
元のコマンド
ExecStart=/usr/local/sbin/haproxy-systemd-wrapper -f /etc/haproxy.conf -p /var/run/haproxy.pid
新しいコマンド
ExecStart=/usr/local/sbin/haproxy-systemd-wrapper -f /etc/haproxy.conf -p /var/run/haproxy.pid; ExecStart=/usr/local/sbin/haproxy-systemd-wrapper -f /etc/haproxy2.conf -p /var/run/haproxy2.pid
2回目の試み
ExecStart=/usr/local/sbin/haproxy-systemd-wrapper -f /etc/haproxy.conf -p /var/run/haproxy.pid
ExecStart=/usr/local/sbin/haproxy-systemd-wrapper -f /etc/haproxy2.conf -p /var/run/haproxy2.pid
更新: サービス haproxy ステータスから取得した結果は次のとおりです:
[root@lb01 ~]# service haproxy status
Redirecting to /bin/systemctl status haproxy.service
haproxy.service - HAProxy Load Balancer
Loaded: loaded (/usr/lib/systemd/system/haproxy.service; enabled)
Active: inactive (dead) since Fri 2015-10-30 16:35:44 GMT; 6s ago
Process: 3221 ExecStart=/usr/local/sbin/haproxy-systemd-wrapper -f /etc/haproxy.conf -p /var/run/haproxy.pid; /usr/local/sbin/haproxy-systemd-wrapper -f /etc/haproxy2.conf -p /var/run/haproxy2.pid (code=exited, status=0/SUCCESS)
Main PID: 3221 (code=exited, status=0/SUCCESS)
Oct 30 16:48:01 lb01 systemd: Started HAProxy Load Balancer.
Oct 30 16:48:01 lb01 haproxy-systemd-wrapper: Usage : haproxy [-f <cfgfile>]* [ -vdVD ] [ -n <maxconn> ] [ -N <maxpconn> ]
Oct 30 16:48:01 lb01 haproxy-systemd-wrapper: [ -p <pidfile> ] [ -m <max megs> ] [ -C <dir> ]
haproxy はセミコロンと追加コマンドをパラメータとして読み込んでいるようです。
答え1
異なる haproxy インスタンスが関連していない場合、最も簡単な解決策は、既存のユニットをそのまま使用し、必要な追加サービス用に 2 番目のユニットを作成することです。
ユニット ファイルをコピーし、ExecStart
オプションを編集して 2 番目の構成ファイルを指すようにします。
今後、このようなサービスをさらに多く開始する予定がある場合は、systemdのテンプレート機能。
既存のユニットのコピーとしてユニットを作成し、指定子を使用して関連する構成ファイルを指定します。/etc/systemd/system/[email protected]
%i
(haproxy を知らないので不完全ですが)
[Unit]
Description=haproxy %i
[Service]
ExecStart=/usr/local/sbin/haproxy-systemd-wrapper -f /etc/haproxy%i.conf -p /var/run/haproxy%i.pid
その後、任意のhaproxyインスタンスを有効にすることができます
systemctl enable haproxy@X
X
インスタンス番号(および一致する構成ファイル)はどこですか。
インスタンスが関連している場合は、私の質問と回答を参照してください。カスタムサービスと一緒にリスナーサービスを開始および停止する方法