systemd.service
1つだけ実行するように設定しました。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