보조 그룹을 결정할 수 없습니다. 작업이 허용되지 않습니다.

보조 그룹을 결정할 수 없습니다. 작업이 허용되지 않습니다.

watcher를 사용자 서비스로 설정하려고 합니다.

나는 그들의 뒤를 따랐다문서가능한 한 가깝습니다. 이것이 내가 가진 것입니다:

소켓 파일:

[Unit]
Description=Watchman socket for user %i

[Socket]
ListenStream=/usr/local/var/run/watchman/%i-state/sock
Accept=false
SocketMode=0664
SocketUser=%i
SocketGroup=%i

[Install]
WantedBy=sockets.target

서비스 파일:

[Unit]
Description=Watchman for user %i
After=remote-fs.target
Conflicts=shutdown.target

[Service]
ExecStart=/usr/local/bin/watchman --foreground --inetd --log-level=2
ExecStop=/usr/bin/pkill -u %i -x watchman
Restart=on-failure
User=%i
Group=%i
StandardInput=socket
StandardOutput=syslog
SyslogIdentifier=watchman-%i

[Install]
WantedBy=multi-user.target

Systemd는 watchman을 실행하려고 시도하지만 재부팅 루프에 갇히게 됩니다.
내가 겪는 오류는 다음과 같습니다.

Apr 16 05:41:00 debian systemd[20894]: [email protected]: Failed to determine supplementary groups: Operation not permitted
Apr 16 05:41:00 debian systemd[20894]: [email protected]: Failed at step GROUP spawning /usr/local/bin/watchman: Operation not permitted

이 서비스와 소켓을 활성화한 그룹과 사용자가 존재한다고 100% 확신합니다. 내가 뭘 잘못했나요?

답변1

나는 같은 문제에 직면했다. 인터넷 검색에서 다음 스레드를 찾았습니다.https://bbs.archlinux.org/viewtopic.php?id=233035

문제는 서비스가 시작되는 방식입니다. 유닛 파일에 사용자/그룹을 지정하는 경우 해당 서비스를 시스템 서비스로 시작해야 합니다.

서비스를 사용자 서비스로 시작하려는 경우 사용자/그룹은 필요하지 않으며 셀 구성에서 제거할 수 있습니다. 현재 사용자로 로그인했을 때 --user서비스를 시작하려면 단순히 플래그를 systemctl에 전달하면 됩니다 .

답변2

아직 문제에 대한 해결책을 찾지 못했지만 유닛 파일을 넣고 ~/.config/systemd/user사용자 매개변수화를 제거하면 문제가 해결되었습니다.

관련 정보