创建一个运行 python 的服务

创建一个运行 python 的服务

我正在尝试通过创建 .service 文件来启动 Pi4 上的服务。

这是到目前为止我的内容:

Unit]
Description=NZBHydra2 Daemon
Documentation=https://github.com/theotherp/nzbhydra2
After=network.target

[Service]
User=root
Group=something
Type=simple

# Set to the folder where you extracted the ZIP
WorkingDirectory=/opt/nzbhydra2

# NZBHydra stores its data in a "data" subfolder of its installation path
# To change that set the --datafolder parameter:
# --datafolder /path-to/datafolder
ExecStart=sudo -u pi /usr/bin/python /opt/nzbhydra2/nzbhydra2wrapper.py --nobrowser
Restart=on-failure

[Install]
WantedBy=multi-user.target

我想以用户身份pi而不是以root.我添加了-u pi但我的Python访问被拒绝。如果我在没有 的情况下运行它-u,它也会创建只有 root 有权访问的文件。 /opt/nzbHydra2 的所有者是 pi:pi。

如何以pi用户身份而不是 root 身份运行此 python 脚本,但仍然可以访问 python?

谢谢!

答案1

您不(不应该)sudo在 systemd 服务或任何非交互式脚本中使用。相反,您可以使用已经发现的User=和字段。Group=

你的单位应该是这样的:

[Unit]
Description=NZBHydra2 Daemon
Documentation=https://github.com/theotherp/nzbhydra2
After=network.target

[Service]
User=pi
Group=pi
Type=simple
WorkingDirectory=/opt/nzbhydra2
ExecStart=/usr/bin/python /opt/nzbhydra2/nzbhydra2wrapper.py --nobrowser
Restart=on-failure

[Install]
WantedBy=multi-user.target

相关内容