我想“激活”systemd服务文件中的virtualenv。如何在systemd服务单元中启用virtualenv?
我想避免在systemd进程和python解释器之间有一个shell进程。
我目前的解决办法是这样的:
[Unit]
Description=fooservice
After=syslog.target network.target
[Service]
Type=simple
User=fooservice
WorkingDirectory={{ venv_home }}
ExecStart={{ venv_home }}/fooservice --serve-in-foreground
Restart=on-abort
EnvironmentFile=/etc/sysconfig/fooservice.env
[Install]
WantedBy=multi-user.target
/etc/sysconfig/fooservice.env
PATH={{ venv_home }}/bin:/usr/local/bin:/usr/bin:/bin
PYTHONIOENCODING=utf-8
PYTHONPATH={{ venv_home }}/...
VIRTUAL_ENV={{ venv_home }}
,但我有麻烦了。我得到ImportErrors,因为sys.path中的某些内容缺失。
能否请你包括你所得到的错误? –
@PraveenYalagandula回溯没有包含任何有用的信息,因为ImportError异常和它上面的所有行只包含自定义代码,在这里并不重要。 – guettli