On Thu, Sep 8, 2011 at 10:01 PM, Breen Ouellette <misc.open...@usask.ca>wrote:
> I've configured the ices package to stream whatever happens to be flowing > into my sound card line input using this roundabout method (seems to work > the best given that ices will read from a FIFO but not stdin): > 1. aucat writes line in to FIFO at /dev/aucat/.raw; > 2. lame reads from above and writes to FIFO /dev/lame/.mp3; > 3. ices reads from above and sends to my icecast server. > > The following commands in a sh script run from root's shell form the meat > of the above chain of events: > > /usr/local/bin/lame --quiet -r -a -b 56 /dev/aucat/.raw /dev/lame/.mp3 & > /usr/bin/aucat -o - > /dev/aucat/.raw & > /etc/rc.d/ices start > > However, if I try to adjust /etc/rc.local to include the first two lines > (which need to be running before ices gets called by rc_scripts in > rc.conf.local), aucat refuses to start. > I've also taken the above commands and created a slightly more robust > watchdog script that is run as a cronjob. > > crontab entry: * * * * * /root/bin/wd_ices.sh > > /root/bin/wd_ices.sh: > snip > -------- > > Unfortunately, this doesn't work exactly as expected either. While aucat > actually starts up, cron doesn't seem to like something about it and gets > stuck trying to send a message to root. `ps ax` shows the problem, which > just stalls there and won't go away: > > -PID- ?? I 0:00.04 /usr/sbin/sendmail -FCronDaemon -odi -oem -oi -t > > If I kill lame (which brings down aucat and ices), sendmail will then get > the message through and exit. > > Can anyone tell me how to get lame and aucat running properly at startup > before /etc/rc.d/ices gets called by rc.local? > > Can anyone tell me how to get the same working with cron without those > sendmail problems? > > Thanks. > > Breeno > > Hi Breeno, my suggestion is to use ezstream http://www.icecast.org/ezstream.php from the same icecast group instead. It will take a stream so you can use: aucat -o - | lame -r - - | ezstream -c ezstream.xml If you throw it into rc.local you will have to disconnect it from the terminal for it to work. /etc/rc.local: /usr/bin/aucat -o - 2> /dev/null | /usr/local/bin/lame -r - - | /usr/local/bin/ezstream -q -c /etc/ezstream.xml < /dev/null &> /dev/null or I've dumped it into a script aucat | lame | ezstream echo $! > stream.pid to use pid checking instead of that ps grepping (killing the ezstream will terminate the entire command set) and then you can also use an rc.d script daemon="script" daemon_user=_no_priv daemon_flags=</dev/null &> /dev/null" Funny story, I'm working on something similar and will shortly have a question for misc too - watch for it as aucat is giving me some trouble. G0kita