diff options
Diffstat (limited to 'src')
| -rwxr-xr-x | src/conf_mode/load-balancing-wan.py | 5 | ||||
| -rw-r--r-- | src/systemd/vyos-wan-load-balance.service | 15 | 
2 files changed, 18 insertions, 2 deletions
| diff --git a/src/conf_mode/load-balancing-wan.py b/src/conf_mode/load-balancing-wan.py index 2f0cf1293..7086aaf8b 100755 --- a/src/conf_mode/load-balancing-wan.py +++ b/src/conf_mode/load-balancing-wan.py @@ -31,6 +31,7 @@ airbag.enable()  load_balancing_dir = '/run/load-balance'  load_balancing_conf_file = f'{load_balancing_dir}/wlb.conf' +systemd_service = 'vyos-wan-load-balance.service'  def get_config(config=None): @@ -158,13 +159,13 @@ def generate(lb):  def apply(lb):      if not lb:          try: -            cmd('sudo /opt/vyatta/sbin/vyatta-wanloadbalance.init stop') +            cmd(f'systemctl stop {systemd_service}')          except Exception as e:              print(f"Error message: {e}")      else:          cmd('sudo sysctl -w net.netfilter.nf_conntrack_acct=1') -        cmd(f'sudo /opt/vyatta/sbin/vyatta-wanloadbalance.init restart {load_balancing_conf_file}') +        cmd(f'systemctl restart {systemd_service}')      return None diff --git a/src/systemd/vyos-wan-load-balance.service b/src/systemd/vyos-wan-load-balance.service new file mode 100644 index 000000000..7d62a2ff6 --- /dev/null +++ b/src/systemd/vyos-wan-load-balance.service @@ -0,0 +1,15 @@ +[Unit] +Description=VyOS WAN load-balancing service +After=vyos-router.service + +[Service] +ExecStart=/opt/vyatta/sbin/wan_lb -f /run/load-balance/wlb.conf -d -i /var/run/vyatta/wlb.pid +ExecReload=/bin/kill -s SIGTERM $MAINPID && sleep 5 && /opt/vyatta/sbin/wan_lb -f /run/load-balance/wlb.conf -d -i /var/run/vyatta/wlb.pid +ExecStop=/bin/kill -s SIGTERM $MAINPID +PIDFile=/var/run/vyatta/wlb.pid +KillMode=process +Restart=on-failure +RestartSec=5s + +[Install] +WantedBy=multi-user.target | 
