From ab7147ffde111d05a7e7f8decd057e7f6a2b1bb1 Mon Sep 17 00:00:00 2001 From: suti7yk5032 Date: Tue, 23 Jul 2024 15:15:44 +0900 Subject: [PATCH] =?UTF-8?q?=E3=82=B7=E3=83=A3=E3=83=83=E3=83=88=E3=83=80?= =?UTF-8?q?=E3=82=A6=E3=83=B3=E6=99=82=E3=81=AE=E4=BD=BF=E7=94=A8=E5=81=9C?= =?UTF-8?q?=E6=AD=A2=E5=87=A6=E7=90=86=E3=82=92=E8=BF=BD=E5=8A=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- dislocker_client.py | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/dislocker_client.py b/dislocker_client.py index 5afa176..a38649c 100644 --- a/dislocker_client.py +++ b/dislocker_client.py @@ -11,6 +11,8 @@ import string import random import tkinter import threading +import signal +import sys class App(customtkinter.CTk): def __init__(self): @@ -144,6 +146,7 @@ class Lock(customtkinter.CTkToplevel): def auth_start(self): auth_thread = threading.Thread(target=self.auth) + auth_thread.daemon = True auth_thread.start() def auth(self): @@ -223,8 +226,35 @@ class Help(customtkinter.CTkToplevel): def handler_close(self): self.destroy() +class Monitor(): + def __init__(self) -> None: + pass + def start(self): + monitor_thread = threading.Thread(target=self.run) + monitor_thread.start() + def signal_handler(self, signum, frame): + print("シャットダウンを検出。") + stop_url = client_config["auth_host_url"] + "/stop" + stop_json = { + "pc_number": int(client_config["pc_number"]) + } + try: + responce = requests.post(stop_url, json=stop_json) + if responce.status_code == 200: + print("停止処理は成功しました。") + self.exit() + else: + print("内部エラーにより停止処理に失敗しました。") + except: + print("ネットワークエラーにより停止処理に失敗しました。") + finally: + sys.exit() + + def run(self): + signal.signal(signal.SIGTERM, self.signal_handler) + def master_password_gen(): numbers = string.digits # (1)