Cron è un programmatore, è buono se vuoi che lo script venga eseguito ogni 5 minuti, o ogni 3 ° mercoledì, ecc., ma per un riavvio arbitrario al completamento che potrebbe (presumo, non indichi quale sia lo script Python fare, quanto tempo ci vuole o se il tempo di completamento è variabile etc) essere essenzialmente casuale non è la scelta migliore.
Puoi inserire direttamente qualche logica nello script, oppure puoi semplicemente racchiudere lo script con una logica di Shell Scripting come per la risposta di @ user3439968, la mia versione è essenzialmente la stessa, ma l'ho mostrata un po 'più prolissa con opzioni per tenere d'occhio i riavvii, ecc. Puoi digitare questo in praticamente tutte le shell della riga di comando, in modo semplice per aprire Terminal
e digitarle direttamente dentro
while true
do
/path/to/script.py
sleep 60
date >> /path/to/logfile.txt
echo "The script ended, and I restarted it after 60 seconds" >> /path/to/logfile.txt
done
Nell'esempio sopra il riavvio non è immediato ma attende 60 secondi, quindi aggiunge la data corrente e un messaggio a un file di registro ad ogni riavvio. Puoi inserire qualsiasi codice di controllo dopo l'esecuzione iniziale dello script Python e la riga done
, anche se ti viene inviato per inviarti che è stato riavviato ecc.
Poiché non si specifica cosa sia "true", non può mai essere falso, quindi essenzialmente tutto tra do
e done
viene ripetuto e ripetuto finché non riceve un segnale di interruzione adatto come CTRL-c
o un comando di tipo kill -9 PID
da un'altra sessione della riga di comando.