У меня есть python script, который будет запущен, который в основном собирает данные и вставляет их в базу данных, основываясь на последнем обновлении базы данных. В основном, я хочу, чтобы этот script продолжал работать и никогда не останавливался, и снова запускать его после завершения. Какой был бы лучший способ сделать это?
Я рассмотрел использование cronjob и создание файла блокировки и просто запускаю script каждую минуту, но я чувствую, что может быть более эффективным способом.
Этот script в настоящее время написан на python 2.7 на OS ubuntu
Спасибо за помощь!
Вы можете обернуть свой script в
while True:
...
или с помощью bash script:
while true ; do
yourpythonscript.py
done
Попробуйте следующее:
os.execv(sys.executable, [sys.executable] + sys.argv)
Оберните свой код в операторе while:
while 1==1: #this will always happen
yourscripthere
Попросите его запустить сам, с теми же аргументами, вероятно, chmod +x
it
os.execv(__file__, sys.argv)
вы также можете запросить у своего пользователя, хотите ли они снова запустить программу в обертке.
prompt = input("would you like to run the program?")
while prompt == "yes":
...
...
prompt = input("would you like to run program again?")
while True:
execfile("test.py")
Это будет продолжать выполнение test.py снова и снова.