1 votos

Reiniciar un python script cada hora más o menos

<p>Así que tengo un script en python que lanzo en el terminal, simplemente escribiendo el nombre del script (python SCRIPTNAME.py)</p> <p>¿Me pregunto es posible hacer un trabajo de guión o cron que simplemente se detiene entonces comienza ese script en python cada hora?</p>

2voto

earthmeLon Puntos 2378

Suena como que usted desea daemonize, o crear un servicio para el, su secuencia de comandos de Python. Esta es la forma en que otras aplicaciones de inicio, y en el orden correcto o en el momento correcto.

Usted querrá crear un systemd servicio para su secuencia de comandos de Python, y luego interactuar con él a través de la systemctl.

systemctl restart mypython
systemctl enable mypython

Una vez que tienes el script trabaja de esa manera, usted puede configurar cron para hacer cualquier cosa que usted necesita, que probablemente será para reiniciar el servicio.

Dependiendo del objetivo de su escritura, y su capacidad para determinar si se está ejecutando correctamente, podría mejorar su servicio para que informe si deja de funcionar, o incluso mirar en soluciones como monit.


Como se ha señalado, esta respuesta proporciona información útil, pero contiene fuera de la fecha de herramientas, tales como rc.local. En lugar de utilizar systemd, usted puede seguir el PID del proceso, y luego matar a ese proceso y volver a ejecutar el script cada hora.

2voto

Serg Puntos 17677

Un mejor enfoque sería a través de GNU timeout como en

timeout -k 3600 python3 /path/to/script.py

donde k es el acrónimo de "matar después de" y el tiempo en segundos.

Así que para tener la secuencia de comandos a ejecutar, terminar y reiniciar cada hora, que podría hacer

while timeout -k 3600 python3 /path/to/script; do
   sleep 2
done

donde sleep 2 es simplemente añadir pequeño retraso antes de reiniciar


También considere el uso de Roscado módulo en Python para programar las partes pertinentes de la secuencia de comandos en su lugar. Ver https://stackoverflow.com/a/50537798/3701431

EnMiMaquinaFunciona.com

EnMiMaquinaFunciona es una comunidad de administradores de sistemas en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros sysadmin, hacer tus propias preguntas o resolver las de los demás.

Powered by: