python 定时 kill 掉

#!/usr/bin/python3
import sys
import datetime
import os
import time
if __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 掉,我这样写对吗?

阅读 2.4k
1 个回答
  1. 如果 status 永远返回 0, 程序停不下来
  2. 如果执行status=os.system(r'{} {} {} {}'.format(py, main_path, sys.argv[1],sys.argv[2]))的时候hang住了,这个程序也停不下来

如果需求仅是定时结束脚本,那么用定时器就可以做到, demo如下

#!/usr/bin/env python
# -*- coding: utf-8 -*-
import os
import time
import threading

def kill_me():
    os._exit(1)

if __name__ == '__main__':
    # 3 秒退出
    timer = threading.Timer(3, kill_me)
    timer.start()

    while 1:
        print('xxxx')
        time.sleep(1)
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题