systemd-service (画面を使用) に alsa-sound がありません。

systemd-service (画面を使用) に alsa-sound がありません。

systemd.service1つだけ実行するように設定しました。CMUS(コンソールミュージックプレーヤー)に分離画面起動時に。

いいえユーザーがシステムにログインせずにリモートで起動すると音がします。
するユーザーとしてログインすると音が聞こえ、サービスを実行するように設定しました。ただし、リモコンで音量を変更することはできません。 「ミキサーの電源が入らない」と表示されます。

ただcmusを起動すると、手動でユーザーとしてログインする画面に切り離され、再びログアウトになり、するリモコンを通してサウンドとミキサーがあります。

rootとして実行するようにサービスを設定する場合(さまざまな理由でこれをしたくない)するサウンドとミキサーがあります。

残念Environment=XDG_RUNTIME_DIR=/run/user/1000ながら、提案通りここ役に立ちません(1000が正しい)。

だから質問は:alsa私のsystemd-serviceでユーザーとして完全に機能するためにここに欠けているものは何ですか?

現在の単位はこんな感じです。

[Unit]
Description=cmusd (consolemusicplayer in screen with remote-web-server)
After=syslog.target network.target sound.target

[Service]
Type=forking
User=myusername
WorkingDirectory=/home/myusername/cmus_daemon
ExecStart=/home/myusername/cmus_daemon/cmusd.init start
ExecStop=/home/myusername/cmus_daemon/cmusd.init stop
Environment="HOME=/home/myusername" "USERNAME=myusername"

[Install]
WantedBy=multi-user.target

基本的にどこからcmusd.init始めるべきですか?

screen -dmS cmusplayer cmus --listen $CMUS_IP

私のシステムは、光オーディオ付きの小さなボードのUbuntu Server 19.10です。

答え1

まあ、より多くの検索と実験の最後に解決策を見つけました。少なくともこのUbuntuでは魅力的に動作します。Group=audio環境は必要ありません。

[Unit]
Description=cmusd (consolemusicplayer in screen with remote-web-server)
After=syslog.target network.target sound.target

[Service]
Type=forking
User=myusername
Group=audio
WorkingDirectory=/home/myusername/cmus_daemon
ExecStart=/home/myusername/cmus_daemon/cmusd.init start
ExecStop=/home/myusername/cmus_daemon/cmusd.init stop

[Install]
WantedBy=multi-user.target

関連情報