Raspberry-Pi

創建一個執行 python 的服務

  • November 17, 2020

我正在嘗試通過創建 .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?

謝謝!

您不(不應該)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

引用自:https://unix.stackexchange.com/questions/620024