超级卵杰的自动脚本(5)Thread多线程关闭,以及程序重启。

要想程序能长久运行,关闭程序和自启程序很重要。遇到临时断网,断电(笔记本可以抗一会),不会报错,等状态正常后,程序还能接着运行

python多线程关闭很麻烦。所以快刀斩乱麻,直接杀死线程,终止程序。

这里调用os,找到程序线程,并在cmd中杀死线程。

import os
driver.quit()#退出浏览器
cmd = 'taskkill /pid ' + str(os.getpid()) + ' -f'#杀死线程
os.system(cmd)

一般来说,断网对浏览器页面影响不大,但socket在一段时间未收到数据会自动断开。而且在子线程内重连也比较麻烦。这时就需要关闭程序,杀死线程。还有就是重启后依然没网,浏览器打不开网页,依旧需要重启。

            try:#尝试接受数据
                recv_data = sk_client.recv(4096)
                buffer += recv_data
                if recv_data.endswith(b'\x00'):
                    break
            except:#socket断开,关闭浏览器,关闭线程。
                print('重连')
                driver.quit()
                cmd = 'taskkill /pid ' + str(os.getpid()) + ' -f'
                print(cmd)
                os.system(cmd)

关于重启我的办法更简单,新建一个程序,在程序里不断打开脚本。

import os
import time
while 1:
    os.system(r'"cd /d E:\python\untitled && python xiaojie改进.py"')
#如果没关闭线程,程序会一直停在这。关闭后会延时10秒重新打开。
    print('again')
    time.sleep(10)

启动就直接从这个脚本启动。

你可能感兴趣的:(超级卵杰的自动脚本(5)Thread多线程关闭,以及程序重启。)