systemd --사용자가 표준 출력을 설정할 수 없습니다: 권한이 거부되었습니다.

systemd --사용자가 표준 출력을 설정할 수 없습니다: 권한이 거부되었습니다.

파일에 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

관련 정보