使用多个独立项目启动 TRAC 服务器

Starting TRAC server with multiple independant projects

我是 运行 一个配置了 3 个独立项目的 TRAC 服务器(tracd 服务)。每个项目都有自己的密码文件,以保持用户管理的独立性。 TRAC 作为 Windows 服务启动,如 https://trac.edgewall.org/wiki/0.11/TracStandalone 中所述 如果 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\tracd\Parameters 中的键 'AppParameters' 的字符串长度太长,似乎无法启动 TRAC 服务器。最大密钥长度似乎约为 260 个字符。

使用以下 'AppParameters' 密钥可以成功启动 TRAC 服务器:

C:\Python27\Scripts\tracd-script.py -p 80 --auth=',C:\Trac\Moisture\conf\.htpasswd,mt.com' --auth=',C:\Trac\Balances\conf\.htpasswd,mt.com' --auth=',C:\Trac\Weights\conf\.htpasswd,mt.com' C:\Trac\Moisture C:\Trac\Balances C:\Trac\Weights

TRAC 服务器不以以下 'AppParameters' 键启动:

C:\Python27\Scripts\tracd-script.py -p 80 --auth='Moisture,C:\Trac\Moisture\conf\.htpasswd,mt.com' --auth='Balances,C:\Trac\Balances\conf\.htpasswd,mt.com' --auth='Weights,C:\Trac\Weights\conf\.htpasswd,mt.com' C:\Trac\Moisture C:\Trac\Balances C:\Trac\Weights

如果我添加第四个项目,则无法再启动 TRAC 服务器,因为字符串太长。这个问题是已知的吗?有解决方法吗?

您还可以使用 -e option 来缩短您的命令以指定 Trac 环境父目录,而不是明确列出每个环境路径。

更广泛的解决方案:

您可以 运行 使用 nssm 的服务。

  1. 安装 nssm 并将其放在您的路径中。我使用 chocolatey 包管理器安装:choco install -y nssm.
  2. 创建批处理文件,run_tracd.bat:

    C:\Python27-x86\Scripts\tracd.exe -p 8080 env1

  3. 运行 nssm install tracd:

  4. 运行 nssm start tracd

您不必完全像这样。您可以避免 bat 文件并在 nssm GUI 中输入参数。我不是 Windows 专家,但我喜欢 bat 文件,因为它更容易编辑。但是,可能存在我不知道的安全问题,或者将参数放在 nssm GUI 中可能更可靠(您不必担心 bat 文件被意外删除)。以下也适用于我: