使用 .system 文件以 VirtualEnv 作为守护进程运行 Python 脚本

问题描述 投票:0回答:1
[Unit]
Description="Twitter Automations Service"
After=network.target

[Service]
Restart=always
ExecStart=source /root/twitter_bot/venv/bin/activate && python3 /root/twitter_bot/main.py
ExecStop=deactivate
[Install]
WantedBy=multi-user target

这是我的 twitter_bot.service 文件的内容。由于某些原因,服务启动后就退出了。即使研究了一段时间后,我也不知道为什么。任何帮助表示赞赏

python linux virtualenv
1个回答
0
投票

当您创建虚拟环境时,例如在

/path/to/venv
文件夹中,您将在
/path/to/venv/bin
文件夹中拥有 python 解释器。在您无法控制如何激活
venv
的情况下,您可以直接在 shebang 或命令行中使用这些解释器。所以你可以更改你的单位文件,例如:

[Unit]
Description="Twitter Automations Service"
After=network.target

[Service]
Restart=always
ExecStart=/root/twitter_bot/venv/bin/python3 /root/twitter_bot/main.py
ExecStop=deactivate
[Install]
WantedBy=multi-user target
© www.soinside.com 2019 - 2024. All rights reserved.