Python: Aceptar entrada mientras se espera

Tengo un pequeño script que he escrito para realizar tareas cada 5 minutos (esto no tiene que ser exacto), pero como está escrito actualmente, la única forma de cancelarlo es con Ctrl + Z (terminal de Linux) y hay no hay forma de cambiar el conjunto de tareas que realiza sin reiniciar el script.

Como resultado, me gustaría cambiar la secuencia de comandos para que pueda aceptar la entrada del usuario mientras espero hacer la próxima ejecución sin interrumpir el cronómetro de 5 minutos por una gran cantidad (como la eliminación de la secuencia de comandos y el reinicio actualmente), pero no puedo averiguar cómo obtener una raw input para aceptar valores solo durante un tiempo determinado, etc. Además, el código actual está escrito en Python 2.7, pero me complace convertirlo a 3 si eso facilita la solución.

El código actual se ve algo como esto:

 # Setup for the tasks while(True): # Do the tasks for i in range(5): print "Next run in " + str(5-i) + " mins" time.sleep(60) 

¿Algunas ideas?

ACTUALIZACIÓN: Esta pregunta no condujo a la publicación de una solución de código específica, por lo que aquí hay un enlace a una pregunta posterior que tenía una versión simple de la solución que implementé (y la única edición que requería que funcionara en las respuestas). ) /

Creo que quieres algo así.

 import threading def takeInput(): """This function will be executed via thread""" value = raw_input("what you want:") return #initialize how you want value = 0 t = threading.Thread(target=takeInput) t.start() time.sleep(5)