This commit is contained in:
root 2020-04-08 00:35:14 -04:00
parent d28e178ecc
commit 4019060e68
2 changed files with 12 additions and 9 deletions

View File

@ -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

View File

@ -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}")