| 1234567891011121314151617181920212223242526272829303132333435363738 |
- # -*- coding: utf-8 -*-
- import subprocess
- import multiprocessing
- import os
- import json
- def load_config():
- with open("config.json", "r") as f:
- return json.load(f)
- config = load_config()
- PREFIX = "clash-multi-"
- START = 1
- END = config["total_container"]
- def stop_and_remove_container(container_id):
- container_name = f"{PREFIX}{container_id}"
- print(f"Processing container: {container_name}")
- try:
- rm_cmd = ["docker", "rm", "-f", container_name]
- subprocess.run(rm_cmd, check=True, stdout=subprocess.DEVNULL, stderr=subprocess.PIPE)
- print(f"Successfully removed container: {container_name}")
- except subprocess.CalledProcessError as e:
- error_message = e.stderr.decode().strip() if e.stderr else "Unknown error"
- print(f"Error processing container {container_name}: {error_message}")
- def main():
- with multiprocessing.Pool(processes=os.cpu_count() or 4) as pool:
- pool.map(stop_and_remove_container, range(START, END + 1))
- if __name__ == "__main__":
- main()
|