#!/usr/bin/python3import sysimport datetimeimport osimport timeif __name__ == '__main__': while 1:
startTime=datetime.datetime.now()
main_path='./main.py'
py=sys.executable
status=os.system(r'{} {} {} {}'.format(py, main_path, sys.argv[1],sys.argv[2])) if status==0:
time.sleep(120) else:
endTime=datetime.datetime.now() if endTime-startTime>60*60: break我现在启动一个脚本判断在超市 1小时后kill 掉,我这样写对吗?
1 回答
侃侃无极
TA贡献2051条经验 获得超10个赞
如果
status永远返回 0, 程序停不下来如果执行
status=os.system(r'{} {} {} {}'.format(py, main_path, sys.argv[1],sys.argv[2]))的时候hang住了,这个程序也停不下来
如果需求仅是定时结束脚本,那么用定时器就可以做到, demo如下
#!/usr/bin/env python# -*- coding: utf-8 -*-import osimport timeimport threadingdef kill_me():
os._exit(1)if __name__ == '__main__': # 3 秒退出
timer = threading.Timer(3, kill_me)
timer.start() while 1:
print('xxxx')
time.sleep(1)添加回答
举报
0/150
提交
取消
