任何虚拟环境都可以为所有virtunenenv启动systemd gunicorn.service吗?

任何虚拟环境都可以为所有virtunenenv启动systemd gunicorn.service吗?

如果您不在环境中工作,Gunicorn 将全局安装(即在系统范围内可用)。不建议这样做。始终选择使用虚拟环境。但是如果您有多个虚拟环境,那么在系统启动时应该有多少个 gunicorn.service 文件来启动 gunicorn?例如下面

WorkingDirectory=/home/myproject...
ExecStart==/home/myproject/myprojectenv/bin/gunicorn...

任何虚拟环境都可以为所有virtennenv启动它吗?

答案1

您可以为此使用 systemd 实例。

例如,假设您在同一个目录中创建所有虚拟环境(无论如何这会使事情变得更容易)。

然后你可以编写这样的单元文件:

WorkingDirectory=/home/myproject/%i
ExecStart=/home/myproject/%i/bin/gunicorn ...

%i 表示单元的特定实例,其数量没有限制。可以使用符号@后跟实例名称来引用实例,例如:

systemctl enable [email protected]
systemctl start [email protected]

因此%i将被替换为myprojectenv。对要创建的每个实例重复此操作。

进一步阅读:

相关内容