如何通过 windows SYSTEM 自动启动 django web 服务器

Posted

技术标签:

【中文标题】如何通过 windows SYSTEM 自动启动 django web 服务器【英文标题】:How to automatically launch django web server by windows SYSTEM 【发布时间】:2022-01-04 06:45:18 【问题描述】:

我想知道是否有办法让 windows server 2019 自动启动 django 的 web 服务器。我还希望在启动时由 SYSTEM 执行启动。

我尝试使用从 venv 的 python 解释器启动 manage.py 的批处理脚本。当我手动启动批处理(即双击)时,它工作得很好而且很花哨。但是在计划任务时,SYSTEM似乎无法正确运行脚本。

我让SYSTEM在启动时启动另一个脚本(一个简单的python脚本,从它自己的venv中创建一个txt文件)并且它可以工作。 如果 Django 启动脚本是由 USER 启动的,那么它可以工作。

问题在于使用 SYSTEM 启动 django。我也试过streamlit,结果是一样的。

你有什么想法吗?

示例批处理脚本:

cd path\of\managepyfile\
C:\path_to_venv\Scripts\python -m manage.py runserver

【问题讨论】:

我假设您希望 SYSTEM 启动服务器以获得其管理员权限?在这种情况下,如果 USER 具有管理员角色,它不会按您的意图工作吗? @Christophe 感谢您的回复。是和否。我确实拥有服务器的管理员权限。但是有两个管理员,我不想登录以启动服务器。我希望每当(虚拟)机器启动时,它都会启动服务器。我不想让这两个用户中的任何一个登录。 使用github.com/winsw/winsw 之类的工具将其包装在Windows 服务中。还有其他人做类似的事情。该服务可以运行为system @Andrew 谢谢你的建议,我会调查的! 不幸的是,我似乎需要构建该工具,但不幸的是我不能。还是我错了? 【参考方案1】:

我们运行一个类似的应用程序(不是 python),但是一个使用 Web 服务器的应用程序。 我们将它设置为任务调度程序中的一个任务,当服务器启动时,它会运行 powershell 脚本,该脚本执行命令以启动 Web 服务器。

Link to setup

但是,您可以使用 web server like IIS 并将文件部署到 cdrive 中的 www 文件夹,然后将站点作为 IIS 服务运行。

如果您以前从未使用过 IIS,那么在 IIS 上设置它会有点棘手。很高兴能提供帮助,因为我们已经以这种方式为我们的一款应用部署了测试访问工具。

【讨论】:

我一定会尽快看看的。谢谢! 不幸的是,这个解决方案似乎也不起作用。我认为问题在于 SYSTEM 不“喜欢”使用 python manage.py runserver 命令启动 django 之类的东西

以上是关于如何通过 windows SYSTEM 自动启动 django web 服务器的主要内容,如果未能解决你的问题,请参考以下文章

wpf 如何启动一个窗口 是最大化的

通过 Windows 服务托管 WCF 服务库获得 System.InvalidOperationException:尝试启动 WCF 服务

Everything 在win7系统中不能设置为随windows启动而自动启动,如何解决

每次电脑启动后会自动弹出对话框,如何解决?

如何在 Windows 8.1 中结束 explorer.exe(每次我这样做都会重新启动)

powershadow system service服务关闭可以吗