Запустите Xdotool на Rasperry PI от имени пользователя «www-data».

Я использую xdotool для rasperry pi, чтобы обновить браузер iceaweasel.
Теперь я хочу перезагрузить веб-страницу после загрузки сервера в локальной сети.

Для этого я пишу PHP-скрипт на Raspberry (refresh.php):

<?php
exec("sh /var/www/refresh.sh");
?>

resfresh.sh

export DISPLAY=:"0.0"XAUTHORITY=/home/pi/.Xauthority
xdotool getactivewindow
xdotool key F5

Если я запускаю PHP-скрипт из консоли, обновление работает!
Если я запускаю PHP из внешнего браузера, обновление не работает!

Это журнал ошибок Apache:

No protocol specified
Error: Can't open display: (null)
Failed creating new xdo instance

Я думаю, что есть проблема с xdotool и пользовательскими www-данными.

Кто-нибудь может мне помочь?

0

Решение

Добавить разрешение www-data для запуска системных инструментов

DISPLAY =: 0 xhost + local: www-data

По вашему сценарию
/refresh.sh

#!/bin/bash
export DISPLAY=:0 && xdotool key F5

В вашем php файле

<?php
shell_exec("/refresh.sh " . $phone);
?>

затем добавьте исполняемый файл в ваш php файл

sudo chmod +x refresh.php

Запустите php-файл с помощью URL-адреса и все готово.

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]