systemd --user 无法设置标准输出:权限被拒绝

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

如果我对选项StandardOutputStandardError单元文件发表评论,服务正确启动

pioz我以 user 身份(普通 Linux 用户)运行该服务。该文件/home/pioz/foo/logs/backend.logpioz用户可写的,事实上我可以使用 nano 编辑该文件。

如何解决此权限被拒绝错误?

答案1

如果您要以普通用户身份运行该服务,请将 .service 文件移动到其$HOME/.config/systemd/user目录中(当然,请检查权限)。然后像这样运行服务:

systemctl --user start foo.service

相关内容