我在icecast.xml项目中定义了以下安装点:
<mount type="normal">
<mount-name>/data.ogg</mount-name>
.....
<on-connect>sh /bin/stream-start.sh</on-connect>
</mount>
并在/bin/stream-start.sh
中定义了stream.sh脚本。
假设执行http://..../data.ogg
请求时,必须执行stream-start.sh但不执行。我现在有以下问题:
答案 0 :(得分:1)
一般来说,检查Icecast日志会有所帮助。 access.log
和 error.log
都可能包含重要信息。此外,调整loglevel
并重新启动Icecast使其生效可能会有所帮助。
https://icecast.org/docs/icecast-2.4.1/config-file.html#log
连接
声明启动源时运行的程序。 传递了一个参数,该参数是正在启动的安装点的名称。流的处理不会等待脚本结束。
应谨慎行事,因为如果FD编号超过1024,流文件描述符与脚本文件描述符混合的可能性很小。
在下一个Icecast版本中将对此进行进一步处理。此选项在Win32上不可用
(重点是我的)
https://icecast.org/docs/icecast-2.4.1/config-file.html#mountsettings
还请注意,您不能依赖存在的交互式shell的“通常”环境变量,例如不会填充PATH。您可能只想在脚本中export >/tmp/on-connect-env.txt
并检查其内容以了解将要使用的内容。同样,您也不能像上面一样将解释器作为命令的一部分传递,您必须 将解释器及其完整路径放在脚本第一行的shebang(#!
)中。