オーディオ入力を受信するために、次のサービスを作成しました。
[Unit]
Description=Monitor Audio Output
After=syslog.target network.target plusaudio.service
[Service]
Type=simple
ExecStart=sox -v 5 -t pulseaudio alsa_output.pci-0000_00_1b.0.analog-stereo.monitor -t mp3 /home/ahmad/recordings/k2.mp3 silence 1 0.1 3% 1 3.0 3%
Restart=on-success
EnvironmentFile=/etc/environment
User=ahmad
[Install]
WantedBy=default.target
端末でコマンドを実行すると、すべてがsox
正常で音声が聞こえます。ただし、サービスを開始してステータスを確認すると、次のように表示されます。
● runsox.service - Monitor Audio Output
Loaded: loaded (/etc/systemd/system/runsox.service; enabled; vendor preset: enabled)
Active: failed (Result: exit-code) since Thu 2020-07-23 21:06:28 +0430; 43s ago
Process: 5517 ExecStart=/usr/bin/sox -v 5 -t pulseaudio alsa_output.pci-0000_00_1b.0.analog-stereo.monitor -t mp3 /home/ahmad/recordings/k2.mp3 silence 1 0.1 3% 1 3.0 3% (code=exited, status=2)
Main PID: 5517 (code=exited, status=2)
جولای 23 21:06:27 app systemd[1]: Started Monitor Audio Output.
جولای 23 21:06:28 app sox[5517]: /usr/bin/sox FAIL formats: can't open input `alsa_output.pci-0000_00_1b.0.analog-stereo.monitor': can not open audio device: Connection refused
جولای 23 21:06:28 app systemd[1]: runsox.service: Main process exited, code=exited, status=2/INVALIDARGUMENT
جولای 23 21:06:28 app systemd[1]: runsox.service: Failed with result 'exit-code'.
修正する
端末でコマンドを実行するとsudo
同じエラーが発生するため、特権やパルスの設定に問題があるようです。
sudo /usr/bin/sox -v 5 -t pulseaudio alsa_output.pci-0000_00_1b.0.analog-stereo.monitor -t mp3 /home/ahmad/recordings/k2.mp3 silence 1 0.1 3% 1 3.0 3%
/usr/bin/sox FAIL formats: can't open input `alsa_output.pci-0000_00_1b.0.analog-stereo.monitor': can not open audio device: Connection refused
答え1
問題は、pulseaudioがシステム全体で実行されないため、起動時にpulseaudioサービスが実行されないことです。
デスクトップシステムの範囲では実行しないことをお勧めします。ただし、本当にこれを行うには、次を参照してください。