セカンダリグループを決定できません。操作は許可されていません。

セカンダリグループを決定できません。操作は許可されていません。

ウォッチャーをユーザーサービスに設定しようとしています。

私は彼らの後に従った文書できるだけ近い。これが私が持っているものです:

ソケットファイル:

[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はウォッチマンを実行しようとしますが、再起動ループに閉じ込められます。
私が経験するエラーは次のとおりです。

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ユーザーパラメータ化を削除して問題を解決しました。

関連情報