Я пытаюсь завершить работу моего RaspberryPi под управлением Raspbian из php-скрипта, запущенного на веб-сервере lighttpd. shell_exec("sudo /sbin/shutdown -h now 2>&1");
я добавил lighttpd ALL=(ALL) NOPASSWD: /sbin/shutdown
в мой файл / etc / sudoers и проверил, что Defaults !requiretty
установлено.
Я все еще получаю "sudo: tty присутствует и не задана программа askpass" при запуске сценария.
Может кто-нибудь, пожалуйста, помогите мне? Спасибо!
Перенаправление вывода (
—
Aaron Miller
2>&1
) требует снаряда; попробуйте удалить это из команды и посмотрите, получите ли вы другой результат.
Спасибо за ваши комментарии. На самом деле я уже пробовал shell_exec в первую очередь. Я просто скопировал неправильную команду на мой вопрос. И exec ("sudo / sbin / shutdown -h now"); тоже не работает
—
frsc
Вы уверены, что lighttpd работает как пользователь lighttpd? В сценарии PHP,
—
WJDev
echo `whoami`
; Это может быть www-data или http вместо
shell_exec
функция вместоexec
так как это командная оболочка (думаю, так оно и есть). Я не уверен на 100% (отсюда и комментарий), но, возможно, стоит попробовать.