引数stopで使用停止処理とシャットダウンを同時に行えるように

This commit is contained in:
suti7yk5032 2024-07-24 23:34:49 +09:00
parent ab7147ffde
commit 78114d3f04

View file

@ -234,8 +234,8 @@ class Monitor():
monitor_thread = threading.Thread(target=self.run) monitor_thread = threading.Thread(target=self.run)
monitor_thread.start() monitor_thread.start()
def signal_handler(self, signum, frame): def signal_handler(self):
print("シャットダウンを検出") print("停止処理を実行")
stop_url = client_config["auth_host_url"] + "/stop" stop_url = client_config["auth_host_url"] + "/stop"
stop_json = { stop_json = {
"pc_number": int(client_config["pc_number"]) "pc_number": int(client_config["pc_number"])
@ -244,13 +244,18 @@ class Monitor():
responce = requests.post(stop_url, json=stop_json) responce = requests.post(stop_url, json=stop_json)
if responce.status_code == 200: if responce.status_code == 200:
print("停止処理は成功しました。") print("停止処理は成功しました。")
self.exit()
else: else:
print("内部エラーにより停止処理に失敗しました。") print("内部エラーにより停止処理に失敗しました。")
result_msgbox = tkinter.messagebox.showwarning(title=f"{app_name} | エラー", message=f"内部エラーにより停止処理に失敗しました。\nDiscordサーバーの指示に従って、停止処理を自身で行ってください。")
except: except:
print("ネットワークエラーにより停止処理に失敗しました。") print("ネットワークエラーにより停止処理に失敗しました。")
result_msgbox = tkinter.messagebox.showwarning(title=f"{app_name} | エラー", message=f"ネットワークエラーにより停止処理に失敗しました。\nDiscordサーバーの指示に従って、停止処理を自身で行ってください。")
finally: finally:
sys.exit() self.shutdown()
def shutdown(self):
logout_command = subprocess.run(['shutdown', '/s', '/t', '1'])
def run(self): def run(self):
signal.signal(signal.SIGTERM, self.signal_handler) signal.signal(signal.SIGTERM, self.signal_handler)
@ -296,6 +301,14 @@ if client_config["initial"] == 1:
else: else:
if __name__ == '__main__': if __name__ == '__main__':
args = sys.argv
if len(args) >= 2:
if args[1] == "stop":
monitor = Monitor()
monitor.signal_handler()
else:
print("引数エラー。")
else:
app = App() app = App()
app.protocol("WM_DELETE_WINDOW", app.handler_close) app.protocol("WM_DELETE_WINDOW", app.handler_close)
app.mainloop() app.mainloop()