次のbashを実行してスピーカーの出力をmp3ファイルとして記録し、バックsox
グラウンドでサービスとして使用したいと思います(Ubuntu 20.04)。
#!/bin/bash
echo "Monitoring sound card for recordings"
name="record"
name=/home/ahmad/recordings/$name
now="$(date +'%m-%d-%H-%M-%S')"
sox -v 5 -t pulseaudio alsa_output.pci-0000_00_1b.0.analog-stereo.monitor -t mp3 "$name"-"$now".mp3 silence 1 0.1 3% 1 3.0 3%
echo "$name-$now was recorded"
端末でファイルを実行すると、次のメッセージが表示され、入力デバイスを受信しています。
Monitoring sound card for recordings
Monitoring speaker sound v4
Input File : 'alsa_output.pci-0000_00_1b.0.analog-stereo.monitor' (pulseaudio)
Channels : 2
Sample Rate : 48000
Precision : 16-bit
Sample Encoding: 16-bit Signed Integer PCM
Level adjust : 5 (linear gain)
In:0.00% 00:01:18.42 [00:00:00.00] Out:0 [ | ] Clip:0
これは私のサービスです。
[Unit]
Description=Example systemd service.
[Service]
Type=simple
WorkingDirectory=/home/ahmad/recordings
ExecStart=/bin/bash /home/ahmad/recordings/myrec1
User=ahmad
[Install]
WantedBy=multi-user.target
しかし、彼はプレゼンターを待たずに出たようです。ただデータの塊が見えますが、それが何なのかわかりません(?)... このようなbashをサービスとして実行する方法をご案内ください。または、これが不可能な場合は、起動時またはユーザーがログインした後に起動する最良の方法は何ですか?
14:33:58 app bash[10581]: Channels : 2
جولای 24 14:33:58 app bash[10581]: Sample Rate : 48000
جولای 24 14:33:58 app bash[10581]: Precision : 16-bit
جولای 24 14:33:58 app bash[10581]: Sample Encoding: 16-bit Signed Integer PCM
جولای 24 14:33:58 app bash[10581]: Level adjust : 5 (linear gain)
جولای 24 14:34:57 app bash[10581]: [15.1K blob data]
جولای 24 14:34:57 app bash[10581]: Aborted.
جولای 24 14:34:57 app bash[10561]: /home/ahmad/recordings/record-07-24-14-33-58 was recorded
جولای 24 14:34:57 app systemd[1]: myservice.service: Succeeded.