#!/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 回答
![?](http://img1.sycdn.imooc.com/5458464a00013eb602200220-100-100.jpg)
侃侃无极
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
提交
取消