我需要运行Python脚本并确保它在终止后能够重新启动。我知道有一个名为supervisord的UNIX解决方案。但不幸的是,我的脚本必须在Windows服务器上运行。您知道有什么工具可以帮助吗? 谢谢
我需要运行 Python 脚本,并确保它在终止后能够重新启动。我知道在 UNIX 上有一个名为 supervisord 的解决方案,但很遗憾,要运行我的脚本的服务器是在 Windows 上。请问您是否了解任何有用的工具?谢谢。
我需要运行Python脚本并确保它在终止后能够重新启动。我知道有一个名为supervisord的UNIX解决方案。但不幸的是,我的脚本必须在Windows服务器上运行。您知道有什么工具可以帮助吗? 谢谢
我需要运行 Python 脚本,并确保它在终止后能够重新启动。我知道在 UNIX 上有一个名为 supervisord 的解决方案,但很遗憾,要运行我的脚本的服务器是在 Windows 上。请问您是否了解任何有用的工具?尽管在这里有一个大而明显的免责声明,但是你可以使用Cygwin在Windows操作系统上运行Supervisor;事实证明,Cygwin可以模拟Posix环境,在这种情况下,supervisord运行不会有任何变化。你无需学习新工具,并且如果需要在多个平台上部署复杂的项目,使用Cygwin甚至可以节省相当多的工作。
以下是步骤:
为supervisord创建虚拟环境,然后像往常一样安装:
pip install supervisord
以通常的方式配置supervisord。请记住,supervisord将在Cygwin中运行,因此您最好使用Cygwin路径(C:\ myservers \ project1转换为Cygwin中的/ cygdrive / c / myservers / project1)。
现在,您可能想将supervisord安装为服务。以下是我的操作方法:
cygrunsrv --install supervisord --path /home/Administrator/supervisor/venv/bin/python --args "/home/Administrator/supervisor/venv/bin/supervisord -n -c /home/Administrator/supervisor/supervisord.conf"
前往Windows服务管理器,启动您刚安装的服务supervisord。
步骤5将supervisord安装为Windows服务,这样您可以从Windows服务管理器控制它(启动/停止/重启)。但是,您仍然可以像往常一样使用supervisorctl
来执行操作,也就是说,您可以简单地部署旧的配置文件。
您可能希望将脚本作为 Windows服务
运行。要这样做,您需要使用python-win32库。这个问题很好地描述了如何执行此操作,并提供了许多其他相关资源的链接。这个问题也可能有用。
Windows服务
是您希望在 Windows 上持续运行任何脚本的方式。它们可以配置为在启动时自动启动,并处理故障。没有什么可以阻止任何人杀死进程本身,但是为了处理这种潜在情况,您可以创建一个bat
文件并使用sc
命令轮询服务以查看是否正在运行,如果未运行,则重新启动服务。只需安排bat
文件每60秒(或适当的时间)运行一次即可。
http://pypi.python.org/pypi/honcho/
它在Mac和Linux上运行得很好,但实际上还没有在Windows上运行...(编辑我的最初答案,在那里我乐观地说它已经可以在Windows上工作了,但这个拉取请求已经被放弃了)
这里有一个提供Windows支持的分支 https://github.com/redpie/honcho ,还有一些正在进行的工作来支持Windows,https://github.com/nickstenning/honcho/issues/28... 至少它可能成为不久的将来的一个可能的解决方案。
这里还有一个foreman分支来支持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()
pip install supervisor
进行安装,它需要 Python 2.4 或更高版本,但不支持任何 3+ 版本。请留意。 - Peon