служба systemd и несколько экземпляров haproxy

служба systemd и несколько экземпляров haproxy

Мне нужно запустить несколько экземпляров haproxy, и мне нужно обновить файл haproxy.service, чтобы добавить вторую команду / экземпляр. Google привел меня к добавлению второй команды в ту же опцию ExecStart=, разделенную точкой с запятой, это не сработало.

Следующее заставило меня подумать, что я мог бы добавить второй ExecStart= с помощью дополнительной команды, но это также не сработало.http://www.freedesktop.org/software/systemd/man/systemd.service.html

Как мне запустить два экземпляра haproxy через службу systemd?

Исходная команда

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

Вторая попытка

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 не связаны между собой, то самым простым решением будет использовать существующий модуль как есть и просто создать второй для необходимой вам дополнительной службы.

Скопируйте файл модуля и отредактируйте ExecStartпараметр так, чтобы он указывал на второй файл конфигурации.

Если вы планируете запустить еще больше подобных служб, вы можете воспользоватьсяшаблонная функция 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находится номер экземпляра (и соответствующий файл конфигурации).

А если случаи связаны, вы можете посмотреть мой вопрос и ответ:Как запустить и остановить службу прослушивания вместе с пользовательской службой

Связанный контент