我有一个 bash 脚本,它基本上使用 mplayer 启动音频流:
#!/bin/bash
# startmusic.sh
/usr/bin/mplayer http://www.audiostream.com
我要确定的是,如果 mplayer 因任何原因崩溃或结束,它会自动重新启动。因此,我每分钟都有一个 cron 作业运行,它也是一个 bash 脚本:
#!/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
使这个脚本不是很有用的一件奇怪的事情是,似乎 mplayer 正在启动 2 个实例,如果播放器停止(例如,当连接丢失时),只有 1 个 mplayer 实例退出,仍然留下一个。由于我的编程技能非常初级,因此我将非常感谢任何(易于实现的)解决方案。提前致谢/J