import threading
import time
import os
scriptpath = os.path.basename(_file) # 获取当前程序名字
script_path = script_path[:-3] # 去掉后缀.py
print(“当前程序路径脚本路径:”, script_path)
def long_running_task():

# 主程序.....
try:
    print("进入主程序")
    #示例
    for x in range(1,21):
        print(x)
        time.sleep(1)
except:
    # 发生错误执行程序
    print("发生致命错误")

def monitor_thread():
print(“启动监督程序”)

# 监督程序
timed = threading.Thread(target=long_running_task)  # 设置线程叫timed
timed.start()  # 开始该线程
timed.join(12)  # 设置超时时间为12秒
if timed.is_alive():  # 如果线程仍然存活(即超时)
    print("程序超时,即将结束...")
    cmd = 'TASKKILL /IM '+script_path + '.exe /F'
    print(cmd)
    time.sleep(2)
    os.popen(cmd)

monitor_thread()
</code>
</pre>
该程序适用于pyinstaller打包后的exe程序