通过Screen启动的FFmpeg进程无法用常规作业控制暂停的问题求助
通过Screen启动的FFmpeg进程无法用常规作业控制暂停的问题求助
各位好,我碰到一个棘手的问题:直接在bash命令行里用Screen启动FFmpeg进程时,常规的^Z作业控制完全不起作用,具体场景如下:
第一种启动方式:
screen ffmpeg -y -f s16le -ar 48000 -ac 2 -i /tmp/mpd.fifo -f mpegts -b:a 128k -acodec libopus zmq:tcp://0.0.0.0:5555 &>> /var/log/mpd/ffmpeg.log
之后用^A^D断开Screen连接,再用screen -r重新连接后,想要用^Z暂停FFmpeg进程却完全没反应。
第二种后台启动方式:
screen -dmS ffmpeg ffmpeg -y -f s16le -ar 48000 -ac 2 -i /tmp/mpd.fifo -f mpegts -b:a 128k -acodec libopus zmq:tcp://0.0.0.0:5555 &>> /var/log/mpd/ffmpeg.log
同样,重新连接Screen后,常规的^Z暂停操作完全无效。
我猜测这可能是因为Screen运行在非交互式shell环境下,这点虽然能理解,但我还是希望能通过脚本用Screen启动FFmpeg,同时还能正常暂停它,目前还没找到解决办法。
我已经尝试过一些方法,比如在~/.screenrc里添加defshell -/bin/bash,但并没有效果。
我目前还没使用tmux,不过也愿意考虑其他可行的解决方案...
备注:内容来源于stack exchange,提问作者bvargo
相关产品推荐
相关产品推荐

