基本的に mplayer を使用してオーディオ ストリームを開始する bash スクリプトがあります。
#!/bin/bash
# startmusic.sh
/usr/bin/mplayer http://www.audiostream.com
私が確認したいのは、mplayer が何らかの理由でクラッシュまたは終了した場合、自動的に再起動されることです。したがって、bash スクリプトでもある cron ジョブを毎分実行しています。
#!/bin/bash
# interval.sh
if [ -z "$(pgrep mplayer)" ]; then
#restart music
(
exec </dev/null
exec >/dev/null
exec 2>/dev/null
umask 0
cd /
bash /home/user/startmusic.sh
) &
else
echo "music already playing, no need to restart startmusic.sh"
fi
このスクリプトがあまり役に立たない奇妙な点の 1 つは、mplayer が 2 つのインスタンスを開始しているように見えることです。プレーヤーが停止した場合 (たとえば、接続が失われた場合など)、1 つの mplayer インスタンスだけが終了し、残りの 1 つが残ります。私のプログラミング スキルは非常に初歩的なものなので、(実装が簡単な) 解決策があれば大歓迎です。よろしくお願いします/J