Проблемы с настройкой <on-connect> в icecast.xml

Я определил следующую точку монтирования в проекте icecast.xml:

<mount type="normal">
<mount-name>/data.ogg</mount-name>
.....
   <on-connect>sh /bin/stream-start.sh</on-connect> 
</mount>

И определил скрипт stream.sh в /bin/stream-start.sh,

Предполагается, что когда http://..../data.ogg запрос выполнен, stream-start.sh должен быть выполнен, но не выполнен. У меня сейчас следующие вопросы:

  1. Как должен быть определен сценарий при подключении (/bin/stream-start или /bin/stream-start.sh)
  2. как вы можете передать параметры в стартовый скрипт.

1 ответ

В общем, вы найдете полезным изучить журналы Icecast. И то и другое access.log а также error.log может содержать важную информацию. Также может быть полезно настроить loglevel и перезапустите Icecast, чтобы он вступил в силу.
https://icecast.org/docs/icecast-2.4.1/config-file.html

по подключению

Укажите программу, которая запускается при запуске источника. Передается параметр, который является именем точки монтирования, которая запускается. Обработка потока не ожидает завершения сценария.

Следует проявлять осторожность, поскольку существует небольшая вероятность того, что дескрипторы потоковых файлов будут смешаны с дескрипторами файлов сценариев, если номера FD превысят 1024. Это будет рассмотрено в следующем выпуске Icecast.

Эта опция недоступна на Win32

(акцент мой)

https://icecast.org/docs/icecast-2.4.1/config-file.html

Также обратите внимание, что вы не можете полагаться на "обычные" переменные окружения присутствующей интерактивной оболочки, так как, например, PATH не будет заполняться. Вы можете просто export >/tmp/on-connect-env.txt из сценария и изучите его содержимое, чтобы понять, с чем вы будете работать. Также вы не можете передать интерпретатор как часть команды, как вы делали выше, вы должны поместить интерпретатор с его полным путем в шебанг (#!) в первой строке сценария.

Другие вопросы по тегам