How can I exit a Python3 script after 5 minutes

梦想与她 提交于 2020-04-30 07:41:48

问题


I have a script that was copying data from SD card. Due to the huge amount of files/filesize, this might take a longer period of time than expected. I would like to exit this script after 5 minutes. How can I do so?


回答1:


It's hard to verify that this will work without any example code, but you could try something like this, using the signal module:

At the beginning of your code, define a handler for the alarm signal.

import signal

def handler(signum, frame):
    print 'Times up! Exiting..."
    exit(0)

Before you start the long process, add a line like this to your code:

#Install signal handler
signal.signal(signal.SIGALRM, handler)

#Set alarm for 5 minutes
signal.alarm(300)

In 5 minutes, your program will receive the alarm signal, which will call the handler, which will exit. You can also do other things in the handler if you want.




回答2:


Here, the threading module comes in handily:

import threading

def eternity(): # your method goes here
    while True:
        pass

t=threading.Thread(target=eternity) # create a thread running your function
t.start()                           # let it run using start (not run!)
t.join(3)                           # join it, with your timeout in seconds


来源:https://stackoverflow.com/questions/30185960/how-can-i-exit-a-python3-script-after-5-minutes

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!