运行shell脚本时服务器崩溃

我有一台运行CentOS 5.5的虚拟机,我用作stream媒体服务器。

如果我打开4个terminal并执行此操作:

1号航站楼:

# mkfifo pipe1.avi # mkfifo pipe2.avi # ffserver & # ffmpeg -probesize 164000 -i pipe1.avi -async 1 -r 25 http://localhost:8090/feed1.ffm 

terminal2:

  # ffmpeg -i pipe2.avi -async 1 -r 25 -vcodec flv -f flv somename.flv 

terminal3:

  # mplayer -dumpstream rtp://someIp:somePort -dumpfile pipe1.avi 

terminal4:

  # mplayer -dumpstream rtp://someIp:somePort -dumpfile pipe2.avi 

一切都很好。 没有任何问题。

现在我正在试图制作一个脚本,并从一个cron运行它。 这是脚本:

 ffserver & ffmpeg -probesize 164000 -i pipe1.avi -async 1 -r 25 http://localhost:8090/feed1.ffm & ffmpeg -i pipe2.avi -async 1 -r 25 -vcodec flv -f flv somename.flv & mplayer -dumpstream rtp://someIp:somePort -dumpfile pipe1.avi & mplayer -dumpstream rtp://someIp:somePort -dumpfile pipe2.avi & exit 0 

crontab行是:

 10 * * * * script.sh > /dev/null 1>&2 

问题是,当cron运行时,系统崩溃实际上,它并没有真正崩溃从另一台计算机上看到的stream,并且运行正常。 但是,我无法在机器上做任何事情。 屏幕变黑,除非重新启动,否则我无法做任何事情。 我有一个脚本,杀死前面的过程。 如果我使用它,stream停止,但我仍然不能重新获得系统(无论我做什么相同的黑屏)。

  1. 将所有内容redirect到某些日志文件:使用命令> /home/username/xxx.log 2>&1&(不要使用tmp,因为重新启动tmp会被刷新)
  2. 在命令之间添加一些sleep 5,可以让进程缓慢启动,并且会按照给定的顺序启动一些时间(也可以使用wait命令,但是testing,sleep应该足够了)
  3. Mplayer正在这样做(正在控制你的控制台)。 使用-vo dummy来查看是否正在工作。 如果仍然无法正常工作,请查看日志,看看是否有任何“terminal”问题出现。