mirror of
https://github.com/comfyanonymous/ComfyUI.git
synced 2025-12-19 19:13:02 +08:00
Add preflight port check before loading startup tasks
This commit is contained in:
parent
5ac3b26a7d
commit
f31996831e
29
main.py
29
main.py
@ -5,6 +5,7 @@ import os
|
|||||||
import importlib.util
|
import importlib.util
|
||||||
import folder_paths
|
import folder_paths
|
||||||
import time
|
import time
|
||||||
|
import socket
|
||||||
from comfy.cli_args import args
|
from comfy.cli_args import args
|
||||||
from app.logger import setup_logger
|
from app.logger import setup_logger
|
||||||
import itertools
|
import itertools
|
||||||
@ -30,6 +31,31 @@ def handle_comfyui_manager_unavailable():
|
|||||||
args.enable_manager = False
|
args.enable_manager = False
|
||||||
|
|
||||||
|
|
||||||
|
def ensure_ports_available(listen_addresses, port):
|
||||||
|
for raw_addr in listen_addresses.split(","):
|
||||||
|
addr = raw_addr.strip()
|
||||||
|
if addr == "":
|
||||||
|
addr = "0.0.0.0"
|
||||||
|
try:
|
||||||
|
addrinfo = socket.getaddrinfo(addr, port, type=socket.SOCK_STREAM)
|
||||||
|
except socket.gaierror as exc:
|
||||||
|
logging.error(f"Invalid listen address '{raw_addr}': {exc}")
|
||||||
|
raise SystemExit(1)
|
||||||
|
|
||||||
|
last_error = None
|
||||||
|
for family, socktype, proto, _, sockaddr in addrinfo:
|
||||||
|
try:
|
||||||
|
with socket.socket(family, socktype, proto) as sock:
|
||||||
|
sock.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
|
||||||
|
sock.bind(sockaddr)
|
||||||
|
break
|
||||||
|
except OSError as exc:
|
||||||
|
last_error = exc
|
||||||
|
else:
|
||||||
|
logging.error(f"Port {port} unavailable for address '{addr}': {last_error}")
|
||||||
|
raise SystemExit(1)
|
||||||
|
|
||||||
|
|
||||||
if args.enable_manager:
|
if args.enable_manager:
|
||||||
if importlib.util.find_spec("comfyui_manager"):
|
if importlib.util.find_spec("comfyui_manager"):
|
||||||
import comfyui_manager
|
import comfyui_manager
|
||||||
@ -40,6 +66,9 @@ if args.enable_manager:
|
|||||||
handle_comfyui_manager_unavailable()
|
handle_comfyui_manager_unavailable()
|
||||||
|
|
||||||
|
|
||||||
|
ensure_ports_available(args.listen, args.port)
|
||||||
|
|
||||||
|
|
||||||
def apply_custom_paths():
|
def apply_custom_paths():
|
||||||
# extra model paths
|
# extra model paths
|
||||||
extra_model_paths_config_path = os.path.join(os.path.dirname(os.path.realpath(__file__)), "extra_model_paths.yaml")
|
extra_model_paths_config_path = os.path.join(os.path.dirname(os.path.realpath(__file__)), "extra_model_paths.yaml")
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user