Проблемы с настройкой <on-connect> в icecast.xml - PullRequest
0 голосов
/ 14 января 2019

Я определил следующую точку монтирования в проекте 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 Ответ

0 голосов
/ 15 января 2019

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

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

(акцент мой)

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

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

...