Soxをサービスとして実行するには?

Soxをサービスとして実行するには?

次の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.

ベストアンサー1

おすすめ記事