Скрипт bash в agi-bin не выполняется - звездочка - PullRequest
0 голосов
/ 29 января 2011

Я пытаюсь выполнить скрипт bash из моего диалплана. Сценарии bash находятся в каталоге projectFiles в /var/lib/asterisk/agi-bin. Когда я пытаюсь выполнить скрипт, вот так:

exten => 0,n,System(/var/lib/asterisk/agi-bin/projectFiles/main.sh ${RECORDED_FILE}.wav ${SOUND_PATH}/menus/wav2.wav)  

Я получаю следующую ошибку:

WARNING[27515]: app_system.c:125 system_exec_helper: Unable to execute '/var/lib/asterisk/agi-bin/projectFiles/main.sh /tmp/rec62.wav /var/lib/asterisk/sounds/en/projects/menus/wav2.wav'
  == Spawn extension (test-project, 0, 5) exited non-zero on 'DAHDI/15-1'   

Разрешения для сценария main.sh установлены на asterisk as owner and group. Куда я могу пойти не так?

Любая помощь приветствуется,
Sriram.

Ответы [ 2 ]

0 голосов
/ 06 августа 2014

У меня была та же проблема, и я нашел другую причину, которая может быть распространенной: я создал скрипт в Windows и скопировал в двоичном режиме.Текстовый файл содержал скрытые ^ M в конце каждой строки.Я удалил их все и все в порядке!Сообщение об ошибке, конечно, крайне вводит в заблуждение!

0 голосов
/ 31 января 2011

Сценарий в agi-bin, main.sh не был успешно выполнен. Отсюда и сообщение об ошибке. Одна строка в main.sh скопировала $1 входных аргументов в текущий рабочий каталог, который, как я предполагал, будет тем же каталогом, в который был помещен скрипт. $HOME для звездочки (и от того, где он выполняет все сценарии) - /etc. Итак, такая строка:

cp $1 .

скопирует $1 в /etc. Это вызвало хаос дальше по сценарию. Изменение этой строки заставляет все работать нормально.

...