Я только что собрал последний Haproxy
.
[root@proxy system]# haproxy -v
HA-Proxy version 1.8.8 2018/04/19
Copyright 2000-2018 Willy Tarreau <willy@haproxy.org>
Мой служебный файл выглядит следующим образом
[Unit]
Description=HAProxy Load Balancer
After=network.target
[Service]
Environment="CONFIG=/etc/haproxy/haproxy.cfg" "PIDFILE=/run/haproxy.pid"
ExecStartPre=/usr/sbin/haproxy -f $CONFIG -c -q
ExecStart=/usr/sbin/haproxy -Ws -f $CONFIG -p $PIDFILE
ExecReload=/usr/sbin/haproxy -f $CONFIG -c -q
ExecReload=/bin/kill -USR2 $MAINPID
KillMode=mixed
Restart=always
Type=notify
# The following lines leverage SystemD's sandboxing options to provide
# defense in depth protection at the expense of restricting some flexibility
# in your setup (e.g. placement of your configuration files) or possibly
# reduced performance. See systemd.service(5) and systemd.exec(5) for further
# information.
# NoNewPrivileges=true
# ProtectHome=true
# If you want to use 'ProtectSystem=strict' you should whitelist the PIDFILE,
# any state files and any other files written using 'ReadWritePaths' or
# 'RuntimeDirectory'.
# ProtectSystem=true
# ProtectKernelTunables=true
# ProtectKernelModules=true
# ProtectControlGroups=true
# If your SystemD version supports them, you can add: @reboot, @swap, @sync
# SystemCallFilter=~@cpu-emulation @keyring @module @obsolete @raw-io
[Install]
WantedBy=multi-user.target
Но когда я запускаю сервис, он создает два таких процесса
[root@proxy system]# systemctl status haproxy
● haproxy.service - HAProxy Load Balancer
Loaded: loaded (/etc/systemd/system/haproxy.service; enabled; vendor preset: disabled)
Active: active (running) since Wed 2018-05-09 14:17:59 EDT; 2min 25s ago
Process: 1350 ExecStartPre=/usr/sbin/haproxy -f $CONFIG -c -q (code=exited, status=0/SUCCESS)
Main PID: 1352 (haproxy)
CGroup: /system.slice/haproxy.service
├─1352 /usr/sbin/haproxy -Ws -f /etc/haproxy/haproxy.cfg -p /run/haproxy.pid
└─1354 /usr/sbin/haproxy -Ws -f /etc/haproxy/haproxy.cfg -p /run/haproxy.pid
May 09 14:17:59 proxy.loadbalancer systemd[1]: Starting HAProxy Load Balancer...
May 09 14:17:59 proxy.loadbalancer systemd[1]: Started HAProxy Load Balancer.
Должно ли это работать так или у меня неверная конфигурация?
Спасибо
два процесса создаются systemd
Это не так. systemd
создает один процесс, а затем разветвляется haproxy (тем самым создавая другой процесс). Это нормально. Одна из причин, по которой это делается, - безопасность. haproxy запускается как root и выполняет минимальную необходимую работу по настройке (например, привязка к порту 80). Затем он разветвляет и отбрасывает привилегии, работая от имени пользователя. haproxy
.