如何将本地conda env中的python脚本转换为Linux下的systemd服务?

2024-04-16 07:45:10 发布

您现在位置:Python中文网/ 问答频道 /正文

我在我的conda环境中运行了一个守护程序Python脚本:

source activate my_env
python my_server.py 

我想将其转换为systemd服务,因此我创建了_服务器服务文件:

^{pr2}$

这不起作用,因为systemd正在以根用户身份运行,而我无法激活conda环境以获得正确的all路径。 当可执行文件需要运行特定的conda环境时,创建systemd服务的正确方法是什么?在


Tags: 文件用户py程序服务器env脚本source
1条回答
网友
1楼 · 发布于 2024-04-16 07:45:10

您可以在用户级运行systemd服务,而不是在系统级运行,后者将以root用户身份运行它。没有将.service文件放在/etc/systemd/system目录中,而是将该文件放在~/.config/systemd/user/directory中,而不需要User和{}派生。例如:

[Unit]
Description=Description
After=network.target

[Service]
Type=simple
WorkingDirectory=/path/to/
ExecStart=/home/myuser/.conda/envs/my_env/bin/python my_server.py

[Install]
WantedBy=default.target

您可以使用systemctl user start/restart/stop servicename命令从正在运行的用户权限开始,而不是使用特权权限启动此服务。或者不需要密码。在

相关问题 更多 >