Ich möchte jedes Mal, wenn es fertig ist, ein Python-Skript ausführen, und ich denke, ich kann dies mit Cron tun, aber ich bin mir nicht sicher, wie es geht.
Die Idee ist, dass jedes Mal, wenn das Python-Skript beendet wird, es immer wieder ausgeführt werden muss.
Ich habe hier nach Antworten gesucht, aber ich kann nichts Ähnliches finden.
Im Terminal:
while :; do ./script_name; done
oder
while :; do python programm.py; done
Wenn Sie etwas Ruhezeit hinzufügen möchten, bevor Sie das Programm erneut ausführen, verwenden Sie den Befehl „sleep“:
Zum Beispiel:
while :; do python programm.py; sleep 90; done
In diesem Beispiel ruht der Zyklus 90 Sekunden, bevor Sie Ihr Programm erneut ausführen
Cron ist ein Planer, es ist gut, wenn Sie möchten, dass Ihr Skript alle 5 Minuten oder jeden 3 lange dauert oder wenn die Zeit bis zur Fertigstellung variabel ist usw.) im Wesentlichen zufällig ist, ist dies nicht die beste Wahl.
Sie können entweder etwas Logik direkt in das Skript einfügen oder das Skript einfach mit etwas Shell-Skriptlogik gemäß der Antwort von @ user3439968 umschließen. Meine Version ist im Wesentlichen dieselbe, aber ich habe sie etwas ausführlicher mit Optionen zum Beibehalten gezeigt ein Auge auf die Neustarts usw. Sie können dies in so ziemlich jede Befehlszeilen-Shell eingeben, am einfachsten, indem Sie Terminal
es einfach öffnen und direkt eingeben
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
Im obigen Beispiel erfolgt der Neustart nicht sofort, sondern wartet 60 Sekunden und fügt dann bei jedem Neustart das aktuelle Datum und eine Nachricht an eine Protokolldatei an. Sie können jeden Steuercode nach der ersten Ausführung des Python-Skripts und der done
Zeile einfügen und es sogar dazu bringen, Ihnen eine E-Mail zu senden, dass es neu gestartet wurde usw.
Da Sie nicht angeben, was „wahr“ ist, kann es niemals falsch sein, also wird im Wesentlichen alles zwischen do
und done
immer wieder wiederholt, bis es ein geeignetes Interrupt-Signal wie einen CTRL-c
oder einen kill -9 PID
Typbefehl von einer anderen Befehlszeilensitzung erhält.
mmmmmm
Alex
mmmmmm