Creo que su idea es más o menos exactamente lo que quiere. Por ejemplo:
import time
def do_something():
with open("/tmp/current_time.txt", "w") as f:
f.write("The time is now " + time.ctime())
def run():
while True:
time.sleep(60)
do_something()
if __name__ == "__main__":
run()
La llamada a time.sleep(60)
pondrá su programa para dormir durante 60 segundos. Cuando se acabe ese tiempo, el sistema operativo activará su programa y ejecutará la función do_something()
, luego lo pondrá nuevamente en modo de suspensión. Mientras su programa está durmiendo, no está haciendo nada de manera muy eficiente. Este es un patrón general para escribir servicios en segundo plano.
Para ejecutar esta realidad desde la línea de comandos, puede utilizar &:
$ python background_test.py &
Al hacer esto, cualquier salida del script irá a la misma terminal como la que lo inició a partir. Puede redirigir la salida para evitar esto:
$ python background_test.py >stdout.txt 2>stderr.txt &
Depende de lo que quiera. Si desea programar una tarea para que se repita de vez en cuando, eche un vistazo a cron. – Falmarri