我已经在文件上为 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
我以 user 身份(普通 Linux 用户)运行该服务。该文件/home/pioz/foo/logs/backend.log
是pioz
用户可写的,事实上我可以使用 nano 编辑该文件。
如何解决此权限被拒绝错误?
答案1
如果您要以普通用户身份运行该服务,请将 .service 文件移动到其$HOME/.config/systemd/user
目录中(当然,请检查权限)。然后像这样运行服务:
systemctl --user start foo.service