****UPDATE****
# The issue was within the wanpipemon script and the way that it interacts
# with ioctl basically unless you want to edit the source for wanpipemon
# and recompile it, it will not work. I have tried -S with root among
# others and unless I am within console it throws a not authorized error
# in the ioctl function.
Хорошо, у меня есть простой сценарий оболочки, который запускает команду и выводит линейные напряжения FXO, обычно вам нужно получать по одной строке за раз, эта комбинация объединяет их в один читаемый вывод.(не имеет отношения к этому сообщению, но я подумал, что кто-то может спросить, что делает этот скрипт)
Это скрипт оболочки:
#!/bin/bash
LINE1=$(wanpipemon -i w1g1 -c astats -m 1 | grep -m1 VOLT | cut -d ":" -f 2-2)
LINE2=$(wanpipemon -i w1g1 -c astats -m 2 | grep -m1 VOLT | cut -d ":" -f 2-2)
LINE3=$(wanpipemon -i w1g1 -c astats -m 3 | grep -m1 VOLT | cut -d ":" -f 2-2)
LINE4=$(wanpipemon -i w1g1 -c astats -m 4 | grep -m1 VOLT | cut -d ":" -f 2-2)
LINE5=$(wanpipemon -i w1g1 -c astats -m 5 | grep -m1 VOLT | cut -d ":" -f 2-2)
LINE6=$(wanpipemon -i w1g1 -c astats -m 6 | grep -m1 VOLT | cut -d ":" -f 2-2)
echo "Line 1 Voltage: $LINE1"
echo "Line 2 Voltage: $LINE2"
echo "Line 3 Voltage: $LINE3"
echo "Line 4 Voltage: $LINE4"
echo "Line 5 Voltage: $LINE5"
echo "Line 6 Voltage: $LINE6"
Запуск скрипта на компьютере через терминал, он прекрасно работаетдействительно.В моем PHP-скрипте я просто делаю это (php-скрипт находится на том же сервере, что и sh-файл):
<code><?php
$output = shell_exec('/usr/sbin/linesta.sh');
echo "<pre>$output
";?>
Вывод, который я получаю в запущенном браузереСценарий:
Line 1 Voltage:
Line 2 Voltage:
Line 3 Voltage:
Line 4 Voltage:
Line 5 Voltage:
Line 6 Voltage:
Теперь я убедился, что права доступа правильные, и уже должен знать, что, поскольку он работает на 50% пути, и, как я уже сказал, я знаю, что сценарий работает намашина.
Это действительно очень странно из-за того, что выводит статический текст, а не динамический текст. Команда 'wanpipemon -i w1g1 -c astats -m *' является частью приложения драйверадля аналоговой карты на моей АТС, и для ее запуска не нужен root (любой пользователь может запустить команду), поэтому меня смущает то, что происходит.
Любая помощь и / или советы по отладке будут очень полезны.оценил, до сих пор я пробовал только двойную проверку разрешений на сценарий оболочки, запустив сценарий на сервере в консоли (то есть linesta.sh), но я не уверен, что еще для тестирования. Я пробовал другую команду PHPтакие как exec () и system () с одинаковыми результатами.