Я использую 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-данными.
Кто-нибудь может мне помочь?
Добавить разрешение 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-адреса и все готово.
Других решений пока нет …