Linux

systemd –user 設置標準輸出失敗:權限被拒絕

  • September 19, 2020

我已經在文件上為 systemd (v241) 創建了這個單元/etc/systemd/user/foo.service

[Unit]
Description=Foo
After=mysqld.service

[Service]
Type=simple
Restart=always
RestartSec=1
StandardOutput=append:/home/pioz/foo/logs/backend.log
StandardError=append:/home/pioz/foo/logs/backend.log
WorkingDirectory=/home/pioz/foo
ExecStart=/home/pioz/foo/backend/current/foo

[Install]
WantedBy=multi-user.target

當我使用systemd --user start foo(不帶sudo)啟動服務時,出現以下錯誤:

foo.service: Failed to set up standard output: Permission denied

如果我對選項StandardOutputStandardError單元文件發表評論,則服務會正確啟動

pioz我以普通 Linux 使用者 user身份執行該服務。該文件可由使用者/home/pioz/foo/logs/backend.log寫入pioz,實際上我可以使用 nano 編輯該文件。

如何解決此權限被拒絕錯誤?

如果您要以普通使用者身份執行該服務,請將 .service 文件移動到他們的$HOME/.config/systemd/user目錄中(當然要檢查權限)。然後像這樣執行服務:

systemctl --user start foo.service

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