Me gustaría ejecutar un script de Python cada vez que finalice y creo que puedo hacerlo con cron, pero no estoy seguro de cómo hacerlo.
La idea es que cada vez que finalicen los scripts de Python, tendrá que ejecutarse una y otra vez.
He buscado respuestas aquí pero no puedo encontrar algo similar a esto.
En terminales:
while :; do ./script_name; done
o
while :; do python programm.py; done
Si desea agregar algo de tiempo de suspensión antes de ejecutar el programa nuevamente, use el comando 'dormir':
Por ejemplo:
while :; do python programm.py; sleep 90; done
en este ejemplo, el ciclo dormirá 90 segundos antes de volver a ejecutar su programa
Cron es un programador, es bueno si desea que su secuencia de comandos se ejecute cada 5 minutos, o cada tercer miércoles, etc., pero para un reinicio arbitrario al finalizar, lo que podría (supongo, no indica qué está haciendo la secuencia de comandos de Python, cómo tiempo que lleva o si el tiempo de finalización es variable, etc.) ser esencialmente aleatorio, no es la mejor opción.
Puede insertar algo de lógica en la secuencia de comandos directamente, o simplemente puede envolver la secuencia de comandos con alguna lógica de Shell Scripting según la respuesta de @ user3439968, mi versión es esencialmente la misma, pero la he mostrado un poco más detallada con opciones para mantener un ojo en los reinicios, etc. Puede escribir esto en casi cualquier shell de línea de comando, lo más simple es abrirlo Terminal
y escribirlo directamente en él
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
En el ejemplo anterior, el reinicio no es inmediato sino que espera 60 segundos, luego agrega la fecha actual y un mensaje a un archivo de registro en cada reinicio. Puede poner cualquier código de control después de la ejecución inicial de la secuencia de comandos de Python y la done
línea, incluso hacer que le envíe un correo electrónico para informarle que se ha reiniciado, etc.
Debido a que no especifica qué es "verdadero", nunca puede ser falso, por lo que esencialmente todo entre do
y done
se repite una y otra vez hasta que recibe una señal de interrupción adecuada como un comando CTRL-c
o un kill -9 PID
tipo de otra sesión de línea de comando.
mmmmmm
Alex
mmmmmm