Мне нужно запустить сценарий python и убедиться, что он перезапустится после завершения работы. Я знаю, что существует решение UNIX под названием supervisord. Но, к сожалению, сервер, на котором должен быть запущен мой скрипт, находится в Windows. Вы знаете, какой инструмент может быть полезен? Спасибо
Если вам нужен диспетчер процессов, похожий на супервизор, который работает в большинстве операционных систем posix и основан на Python, как супервизор, то вам следует обратить внимание на honcho, который является портом мастера Python (на основе Ruby):
http://pypi.python.org/pypi/honcho/
Отлично работает на Mac, Linux, но (на самом деле) еще не Windows ... (редактирование моего первоначального ответа, где Я оптимистично сказал, что он уже работает в Windows на основе запроса на удаление, который был отклонен с тех пор)
Здесь есть ответвление, обеспечивающее поддержку Windows https://github.com/redpie/honcho и некоторая работа по поддержке Windows здесь https://github.com/nickstenning/honcho/issues/28 ... по крайней мере, это может стать возможным решением в ближайшем будущем.
Здесь также есть форк-мастер для поддержки Windows: https://github.com/ddollar/foreman-windows , который может работать на вас, хотя я никогда не пробовал.
Так что на данный момент служба Windows может быть вашим лучшим краткосрочным вариантом.
Нет, supervisord не поддерживаем в соответствии с Windows.
, НО то, что Вы можете сделать, чтобы перезапустить его автоматически из сценария обертки:
#!/usr/bin/python
from subprocess import Popen
file_path = " script_to_be_restarted.py"
args_as_str = " --arg1=woop --arg2=woop"
while True:
print("(Re-)Start script %s %s" % (file_path, args_as_str))
p = Popen("python " + file_path + args_as_str, shell=True)
p.wait()