Stop function now works with Windows

pull/11/head
LulzRose 2023-10-04 16:35:29 -05:00 committed by GitHub
parent f64a49a1e5
commit 5c4cb7df24
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 5 additions and 16 deletions

View File

@ -1,16 +1,8 @@
'''
Author: SpenserCai
Date: 2023-08-24 09:33:45
version:
LastEditors: SpenserCai
LastEditTime: 2023-08-24 22:08:16
Description: file content
'''
import subprocess
import threading
import os
from scripts.base import get_bin_process_path
# 单列类
class ProcessCtrl:
__status = False
__process = None
@ -24,7 +16,7 @@ class ProcessCtrl:
ProcessCtrl.__process = subprocess.Popen(get_bin_process_path(), stdout=subprocess.PIPE, stderr=subprocess.STDOUT, universal_newlines=True)
for line in iter(ProcessCtrl.__process.stdout.readline, ""):
ProcessCtrl.AllLogData += line
# LogData只保留最后10行
# Limit LogData to 10 lines
#if len(ProcessCtrl.AllLogData.split("\n")) > 10:
# ProcessCtrl.LogData = "\n".join(ProcessCtrl.AllLogData.split("\n")[-10:])
#else:
@ -33,18 +25,15 @@ class ProcessCtrl:
ProcessCtrl.__process = None
ProcessCtrl.__status = False
def start():
ProcessCtrl.__status = True
ProcessCtrl.__thread = threading.Thread(target=ProcessCtrl._start_process)
ProcessCtrl.__thread.start()
def stop():
if ProcessCtrl.__process != None:
# 发送相当于Ctrl+C的信号
ProcessCtrl.__process.send_signal(3)
if ProcessCtrl.__process is not None:
# Terminate the subprocess (Windows compatible)
ProcessCtrl.__process.terminate()
def is_running():
return ProcessCtrl.__status