diff --git a/core/utils/general/shutdown.py b/core/utils/general/shutdown.py index b6de125..3701702 100644 --- a/core/utils/general/shutdown.py +++ b/core/utils/general/shutdown.py @@ -1,14 +1,27 @@ from core.utils.data.state import state import threading +import psutil +import sys shutdown_event = threading.Event() def kill_aria2server(): + if sys.platform.startswith("win"): + process = "aria2c.exe" + else: + process = "aria2c" + if state.aria2process: state.aria2process.kill() if state.debug: - print("\nKilled Aria2") + print("Killed Aria2") + + for proc in psutil.process_iter(): + if proc.name() == process: + proc.kill() + if state.debug: + print("Killed Aria2c") def closehelper(): diff --git a/core/utils/network/download.py b/core/utils/network/download.py index a24b2cc..9c6f719 100644 --- a/core/utils/network/download.py +++ b/core/utils/network/download.py @@ -13,7 +13,6 @@ def download_selected(item, posts, post_titles): print(f"network {item.text()}") run_thread(threading.Thread(target=run_download, args=(item.text(), posts, post_titles))) - else: if state.debug: print("No item selected for download.") diff --git a/main.py b/main.py index 71aaf37..1e0baad 100644 --- a/main.py +++ b/main.py @@ -40,7 +40,6 @@ if __name__ == "__main__": print("Starting Aria2 Server") state.aria2process = run_aria2server() signal.signal(signal.SIGINT, keyboardinterrupthandler) - atexit.register(kill_aria2server) run_thread(threading.Thread(target=send_notification, args=(shutdown_event,), daemon=True)) if state.debug: print("Launching GUI") diff --git a/requirements.txt b/requirements.txt index 97505f6..0acd172 100644 --- a/requirements.txt +++ b/requirements.txt @@ -7,3 +7,4 @@ pyinstaller==6.15.0 pyqtdarktheme==0.1.7 aiohttp==3.13.0 plyer==2.1.0 +psutil==7.1.0 \ No newline at end of file