Bash,ffmpeg和管道沉思

时间:2016-09-04 04:58:02

标签: bash ffmpeg pipe

我正在尝试使用此脚本运行Monit。这个脚本在命令行的root下完全运行,但是当我尝试从shell环境运行它时,它在管道符号后不起作用,即当我调试时我可以看到它运行直到管道符号和管道符号之后的ffmpeg命令既不从root也不从任何其他用户运行。感谢您的帮助。

#!/bin/sh
pid_file="/home/tester/radio1.pid"
name="radio1"

case "$1" in
 start)

    echo "Start radio";
    rtl_fm -f 93.2970M -M wbfm | /opt/ffmpeg_qsv/ffmpeg/ffmpeg -f s16le -ac 1 -i pipe:0  -acodec libmp3lame -ab 128k -f flv rtmp://localhost:1935/live/test" &
        ch_pid=$!
    echo $ch_pid
    echo $ch_pid > $pid_file
    echo `( >>/dev/null )&`;
         ;;

 stop)
    echo "Stop radio";
    PID=`cat $pid_file 2>/dev/null`
    kill $PID >/dev/null 2>&1
        rm -f $pid_file
         ;;
        *)
    echo "Usage: /etc/init.d/$name {start|stop}"
         exit 1
         ;;
 esac


exit 0

1 个答案:

答案 0 :(得分:1)

你的某个地方缺少双引号。在第9行,你有一个挂号。查看http://www.shellcheck.net/这样的小错误很棒。