파일에 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 사용자)로 서비스를 실행합니다. 파일은 /home/pioz/foo/logs/backend.log
사용자 pioz
가 쓸 수 있으며 실제로 nano를 사용하여 파일을 편집할 수 있습니다.
이 권한 거부 오류를 해결하는 방법은 무엇입니까?
답변1
일반 사용자로 서비스를 실행하려면 .service 파일을 해당 $HOME/.config/systemd/user
디렉터리로 이동합니다(물론 권한을 확인하세요). 그런 다음 다음과 같이 서비스를 실행합니다.
systemctl --user start foo.service