From 4019060e68f73f57f3079dc42c434eb17c17d181 Mon Sep 17 00:00:00 2001 From: root Date: Wed, 8 Apr 2020 00:35:14 -0400 Subject: [PATCH] fix bugs --- go-socks-lb.yml.template | 5 ++--- o_manager.py | 16 ++++++++++------ 2 files changed, 12 insertions(+), 9 deletions(-) diff --git a/go-socks-lb.yml.template b/go-socks-lb.yml.template index d3b6bed..80ec42b 100644 --- a/go-socks-lb.yml.template +++ b/go-socks-lb.yml.template @@ -1,6 +1,5 @@ -proxy: -{% for idx in running_idx %} - - url: "socks5://192.168.122.128:108{{idx}}}" +proxy:{% for idx in running_idx %} + - url: "socks5://192.168.122.128:108{{idx}}" weight: 5 {% end %} sticky: false diff --git a/o_manager.py b/o_manager.py index 73b6847..fede877 100644 --- a/o_manager.py +++ b/o_manager.py @@ -13,6 +13,7 @@ class OManager: self.idx = 0 self.running_idx = [] self.run_task = [] + self.PID = None if loop: self.loop = loop else: @@ -68,6 +69,7 @@ class OManager: idx = op.idx if idx not in self.running_idx: self.running_idx.append(idx) + self.reset_lb() def stop_all(self): loop = self.loop @@ -78,26 +80,28 @@ class OManager: def reset_lb(self): try: - os.kill(self.PID, signal.SIGINT) + if self.PID: + os.kill(self.PID, signal.SIGINT) except Exception as err: print("kill failed:", err) for task in self.run_task: task.cancel() self.run_task = [] lb_cfg_fp = self.generate_lb_cfg() - # TODO: remove --mute-replay-warnings - lb_cmd = " ".join(["go-socks-lb/go-socks-lb", "-config", - lb_cfg_fp, "-bind", "0.0.0.0:7000"]) + lb_cmd = ["go-socks-lb/go-socks-lb", "-config", + lb_cfg_fp, "-bind", "0.0.0.0:7000"] + print("lb_cmd", lb_cmd) self.run_task.append(self.loop.create_task( self.run_cmd(lb_cmd))) async def run_cmd(self, cmd): while True: + print("Manager trying to start go") proc = await asyncio.create_subprocess_exec( - cmd, + cmd[0], *cmd[1:], stdout=asyncio.subprocess.PIPE, stderr=asyncio.subprocess.PIPE) - print("started") + print("Manager started", cmd) self.proc = proc self.PID = proc.pid print(f"pid: {self.PID}")