Intereting Posts

Программа действует по-разному в зависимости от пользователя

Я пытаюсь контролировать RC-передатчик с сайта PHP. Команда отлично работает как пользователь «xbian» в командной строке:

sudo /home/xbian/433Utils/RPi_utils/codesend 34832404 

например, и он отлично работает.

Поэтому я использую этот код на странице php:

 shell_exec("sudo /home/xbian/433Utils/RPi_utils/codesend {$num} >/tmp/debug.log 2>&1"); 

И эта линия в судерах:

 www-data ALL=NOPASSWD: /home/xbian/433Utils/RPi_utils/codesend 

И, как и ожидалось, я получаю выходной файл:

отправка код [34832404]

Который я не получаю без линии sudoers. Таким образом, команда запускается как sudo, как и должно, но по какой-то причине после всего этого она просто не работает, как при выполнении обычной команды оболочки.

Фактическая вещь, которая требует sudo, – это библиотека WiringPi, которая вызывается в программе C ++ «codeend». Я предполагаю, что что-то идет не так, но я не знаю, как устранить его. Ошибок не возникает в программе кодов и ничего больше не выводится из этой команды. Я запускаю PHP 5.4.4 и использую PMF. Эта страница доступна только в моей локальной сети, поэтому я не слишком беспокоюсь о безопасности на данный момент, просто получаю ее работу.

Как я могу выяснить, где проблема?

Я бы посоветовал вам использовать пилот ( http://www.pilight.org ), когда вы хотите сделать домашнюю автоматизацию с помощью вашей малины. Эта программа специально предназначена для этой цели.

Чтобы быть более понятным после комментария ниже. Я управляю пилотом и XBMC на той же малине Pi более года без проблем. Таким образом, я могу контролировать свои огни даже с помощью пульта дистанционного управления телевизором. Так что не нужно покупать дополнительные малиновые пироги.