gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-05 00:46:34 33 4
gpt4 key购买 nike

我有一个守护进程 Python我的脚本 conda我运行它的环境:

source activate my_env
python my_server.py

我想将其转换为 systemd服务,所以我创建了 my_server.service 文件:
[Service]
User=myuser
Group=myuser
Type=simple
ExecStart=/home/myuser/.conda/envs/my_env/bin/python /path/to/my_server.py

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

最佳答案

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

[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 以运行用户权限启动,而不是使用特权权限启动此服务。命令。不需要 sudo 权限或密码。

关于python - 如何将本地 conda env 中的 python 脚本转换为 Linux 中的 systemd 服务?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53928299/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com