Linux
systemd –user 設置標準輸出失敗:權限被拒絕
我已經在文件上為 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
如果我對選項
StandardOutput
和StandardError
單元文件發表評論,則服務會正確啟動。
pioz
我以普通 Linux 使用者 user身份執行該服務。該文件可由使用者/home/pioz/foo/logs/backend.log
寫入pioz
,實際上我可以使用 nano 編輯該文件。如何解決此權限被拒絕錯誤?
如果您要以普通使用者身份執行該服務,請將 .service 文件移動到他們的
$HOME/.config/systemd/user
目錄中(當然要檢查權限)。然後像這樣執行服務:systemctl --user start foo.service