Path: blob/main/singlestoredb/apps/_process.py
469 views
import os1import signal2import typing3if typing.TYPE_CHECKING:4from psutil import Process567def kill_process_by_port(port: int) -> None:8existing_process = _find_process_by_port(port)9kernel_pid = os.getpid()10# Make sure we are not killing current kernel11if existing_process is not None and kernel_pid != existing_process.pid:12print(f'Killing process {existing_process.pid} which is using port {port}')13os.kill(existing_process.pid, signal.SIGKILL)141516def _find_process_by_port(port: int) -> 'Process | None':17try:18import psutil19except ImportError:20raise ImportError('package psutil is required')2122for proc in psutil.process_iter(['pid']):23try:24connections = proc.connections()25for conn in connections:26if conn.laddr.port == port:27return proc28except psutil.AccessDenied:29pass3031return None323334