Compare commits

...

2 Commits

Author SHA1 Message Date
g1879
45f8c38a75 修改quit()逻辑 2024-02-06 16:56:29 +08:00
g1879
193049428d 修改quit()逻辑 2024-02-06 16:36:44 +08:00
4 changed files with 14 additions and 5 deletions

View File

@ -210,7 +210,7 @@ class Browser(object):
ip, port = self.address.split(':')
if ip not in ('127.0.0.1', 'localhost'):
return
stop_process_on_port(port)
stop_process_on_port(port, self.process_id)
return
if self.process_id:

View File

@ -157,7 +157,7 @@ def set_prefs(opt):
def set_flags(opt):
"""处理启动配置中的prefs项,目前只能对已存在文件夹配置
"""处理启动配置中的flags项
:param opt: ChromiumOptions
:return: None
"""

View File

@ -12,7 +12,7 @@ from tempfile import gettempdir, TemporaryDirectory
from threading import Lock
from time import perf_counter
from psutil import process_iter, AccessDenied, NoSuchProcess, ZombieProcess
from psutil import process_iter, AccessDenied, NoSuchProcess, ZombieProcess, Process
from .._configs.options_manage import OptionsManager
from ..errors import (ContextLostError, ElementLostError, CDPError, PageDisconnectedError, NoRectError,
@ -182,11 +182,20 @@ def wait_until(function, kwargs=None, timeout=10):
raise TimeoutError
def stop_process_on_port(port):
def stop_process_on_port(port, pid=None):
"""强制关闭某个端口内的进程
:param port: 端口号
:param pid: 进程号
:return: None
"""
if pid:
try:
for p in Process(pid).children():
p.terminate()
Process(pid).terminate()
except:
pass
for proc in process_iter(['pid', 'connections']):
try:
connections = proc.connections()

View File

@ -42,7 +42,7 @@ def get_hwnds_from_pid(pid: Union[str, int], title: str) -> list: ...
def wait_until(function: callable, kwargs: dict = None, timeout: float = 10): ...
def stop_process_on_port(port: Union[int, str]) -> None: ...
def stop_process_on_port(port: Union[int, str], pid: int = None) -> None: ...
def configs_to_here(file_name: Union[Path, str] = None) -> None: ...