引数stopで使用停止処理とシャットダウンを同時に行えるように
This commit is contained in:
parent
ab7147ffde
commit
78114d3f04
1 changed files with 20 additions and 7 deletions
|
@ -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__':
|
||||||
app = App()
|
args = sys.argv
|
||||||
app.protocol("WM_DELETE_WINDOW", app.handler_close)
|
if len(args) >= 2:
|
||||||
app.mainloop()
|
if args[1] == "stop":
|
||||||
|
monitor = Monitor()
|
||||||
|
monitor.signal_handler()
|
||||||
|
else:
|
||||||
|
print("引数エラー。")
|
||||||
|
else:
|
||||||
|
app = App()
|
||||||
|
app.protocol("WM_DELETE_WINDOW", app.handler_close)
|
||||||
|
app.mainloop()
|
||||||
|
|
Loading…
Reference in a new issue