Linux

將 Systemd 服務配置為以 root 訪問權限執行

  • October 25, 2018

我在 Raspbian Jessie 上使用 Systemd 設置了 node.js 應用程序形式的服務,它使用自己的使用者帳戶。但是,我發現該服務沒有正確執行,因為它沒有必要的權限。我安裝的其中一個節點模組需要 root 訪問權限。如果我使用 sudo 手動執行應用程序,一切正常。

有沒有辦法告訴 systemd 用 sudo 執行服務?

告訴 systemd 執行服務sudo

sudo與它無關。

通常,您指示 systemd 以特定使用者/組的身份執行服務,並在單元文件的部分中使用User=andGroup=指令。[Service]

將它們設置為 root(或刪除它們,因為預設以 root 身份執行)。

需要明確的是,systemd系統服務預設以 root 身份執行,但預設行為與使用User=root.

正如在衍生程序中的環境變數中所述,這些變數僅在設置時才User=設置:

$USER, $LOGNAME, $HOME, $SHELL

我進行了測試以確認這一發現。因此,如果您想以需要上述變數之一的 root 身份執行 systemd 服務,則需要設置User=root.

引用自:https://serverfault.com/questions/806617