我正在尝试通过创建 .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