当前位置: 首页 > 面试题库 >

是否有Windows模拟管理员?

庾奇思
2023-03-14
问题内容

我需要运行python脚本,并确保它在终止后将重新启动。我知道有一个称为supervisor的UNIX解决方案。但是不幸的是,必须运行我的脚本的服务器在Windows上。您知道哪种工具有用吗?谢谢


问题答案:

尽管这里有大量的免责声明,但是您可以在Windows中使用Cygwin运行Supervisor
。事实证明,Cygwin在模拟Posix环境方面走了很长的路要走,以至于实际上Supervisor运行不变。无需学习新工具,如果需要跨多个平台部署复杂的项目,甚至可以节省很多工作。

这是我的食谱:

  1. 如果尚未完成,请安装Cygwin。在安装过程中,选择Python。
  2. 从Cygwin终端,照常安装virtualenv。
  3. 为supervisor创建一个virtualenv,然后像往常一样安装:

    pip install supervisord
    
  4. 以常规方式配置主管。请记住,supervisor将与Cygwin一起运行,因此最好使用Cygwin方式的路径(C:\ myservers \ project1在Cygwin中转换为/ cygdrive / c / myservers / project1)。

  5. 现在,您可能希望将supervisor作为服务安装。这是我的方法:

    cygrunsrv --install supervisord --path /home/Administrator/supervisor/venv/bin/python --args "/home/Administrator/supervisor/venv/bin/supervisord -n -c /home/Administrator/supervisor/supervisord.conf"
    
  6. 转到Windows服务管理器,然后启动刚刚安装的监督服务。

Point
5将超级用户安装为Windows服务,因此您可以从Windows服务管理器中对其进行控制(启动/停止/重新启动)。但是您可以执行的操作supervisorctl照常进行,这意味着您可以简单地部署旧的配置文件。



 类似资料:
  • 问题内容: Python是否具有包/模块管理系统,类似于Ruby在哪里可以使用rubygems ? 在“ 安装Python模块”上 ,我仅看到对的引用,但这需要您首先找到该软件包。 问题答案: 2014年3月 :好消息!Pip随附了Python 3.4 。Pip长期以来一直是Python的事实上的标准包管理器。您可以这样安装软件包: 哇!这是所有Python版本中的最佳功能。它使每个人都可以访问社

  • 问题内容: 我有一个Django应用。当以管理员用户身份登录时,我希望能够在URL中传递一个秘密参数,并使整个网站的行为就像我是另一个用户一样。 假设我有显示当前登录用户个人资料的URL 。我希望能够做类似的事情,并使基础视图相信我实际上是ID 123的用户(因此呈现 该 用户的个人资料)。 我为什么要那样? 仅仅因为重现仅出现在单个用户帐户中的某些错误要容易得多。 我的问题: 实现这样的最简单的

  • 问题内容: 我不明白为什么无法在此示例中模拟NamedTemporaryFile.name: 测试结果在: 问题答案: 您设置的模拟错误:不是上下文管理器,而是 返回 了一个上下文管理器。将您的设置行替换为: 这样您的测试就可以了。

  • 我不太了解Windows内部,但我想知道背后的“魔力”是什么。如果MS随Win OS提供的tracert对普通用户很好(但它只能使用ICMP),那么普通用户为TCP/UDP数据包设置TTL并在套接字上接收相应的响应是否存在问题(技术限制),例如: ICMP:TTL在传输中过期 UDP:端口无法到达 和其他很少的(如TCP RST、ICMP主机无法访问等)? 所以基本上: 如果没有问题,为什么Win

  • 本质上,我有一个Java类,它在套接字通道上执行选择,我想存根通道,这样我就可以按预期测试选择工作。 例如,这大致就是被测试的类所做的: 我希望能够测试这样的东西: 这是基于一个真实的例子,但细节并不重要。总体目标是如何存根支持选择的SocketChannel,这样我就不必创建真正的客户机进行测试。 我也知道这比简单地截取SocketChannel更复杂:似乎我需要截取或以某种方式提供自定义系统默

  • node技术圈有没有类似conda可以创建虚拟环境的技术? 我的需求是同时在两个项目里运行 npm run dev 但是两个项目node版本不一致。目前一直是 使用nvm不断地切换。这样感觉太麻烦了是否有更先进的技术? 我了解了Volta技术,这项技术是在不同项目run时使用不同node版本,其实我更倾向于conda的方式 手动创建一个虚拟环境在虚拟环境内指定node版本 第二个方向是使用wind