Penso che la tua idea sia esattamente ciò che desideri. Per esempio:
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 chiamata a time.sleep(60)
metterà il vostro programma di dormire per 60 secondi. Quando il tempo è scaduto, il sistema operativo attiva il programma ed esegue la funzione do_something()
, quindi la riporta in stato di stop. Mentre il tuo programma sta dormendo, non sta facendo nulla in modo molto efficiente. Questo è un modello generale per la scrittura di servizi in background.
Per eseguire in realtà questo dalla riga di comando, è possibile utilizzare &:
$ python background_test.py &
Nel fare questo, qualsiasi uscita dallo script andrà allo stesso terminale, come quella di partenza da. È possibile reindirizzare l'uscita per evitare questo:
$ python background_test.py >stdout.txt 2>stderr.txt &
fonte
2011-01-09 03:31:42
Dipende da ciò che si desidera. Se vuoi programmare un'attività da ripetere ogni tanto, dai un'occhiata a cron. – Falmarri