
Tengo el requisito de ejecutar un par de instancias de haproxy y necesito actualizar el archivo haproxy.service para agregar el segundo comando/instancia. Google me llevó a agregar el segundo comando en la misma opción ExecStart=, separado por un punto y coma, esto no funcionó.
Lo siguiente me hizo pensar que podía agregar un segundo ExecStart= con el comando adicional, pero esto tampoco funcionó.http://www.freedesktop.org/software/systemd/man/systemd.service.html
¿Cómo hago para que dos instancias de haproxy se ejecuten a través de un servicio systemd?
comando original
ExecStart=/usr/local/sbin/haproxy-systemd-wrapper -f /etc/haproxy.conf -p /var/run/haproxy.pid
Nuevo comando
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
Segundo intento
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
Actualización: esto es lo que obtengo del estado del servicio 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> ]
¿Parece que haproxy tal vez esté leyendo el punto y coma y el comando adicional como parámetros?
Respuesta1
Si las diferentes instancias de haproxy no están relacionadas, la solución más sencilla es utilizar la unidad existente tal como está y simplemente crear una segunda para el servicio adicional que necesita.
Copie el archivo de la unidad y edite la ExecStart
opción para que apunte al segundo archivo de configuración.
Si prevé iniciar muchos más de estos servicios, es posible que desee utilizar elfunción de plantilla de systemd.
Cree una unidad como una copia de la unidad existente y use los especificadores para señalar los archivos de configuración relevantes/etc/systemd/system/[email protected]
%i
Algo como (incompleto porque no sé haproxy:
[Unit]
Description=haproxy %i
[Service]
ExecStart=/usr/local/sbin/haproxy-systemd-wrapper -f /etc/haproxy%i.conf -p /var/run/haproxy%i.pid
Luego puedes habilitar cualquier instancia de haproxy con
systemctl enable haproxy@X
¿Dónde X
está el número de la instancia (y el archivo de configuración correspondiente)?
Y si las instancias están relacionadas, puedes ver mi pregunta y respuesta:Cómo iniciar y detener un servicio de escucha junto con un servicio personalizado