[英]xdotool refresh Browser with php or shell
在 Kioskmode 中運行 RPI。
我寫了一個 php 腳本,顯示乒乓球記分牌,當按下連接到通過 wlan 連接的 D1 Mini 的按鈕時,積分計數。
現在我需要刷新瀏覽器窗口以顯示數據庫中的實際分數。
我找到了 xdotool ,但我無法讓它與 php 腳本中的 shell_exec() 一起工作。
當我在命令行中使用此命令DISPLAY=:0.0 xdotool key F5
時,瀏覽器刷新工作,但是當我嘗試使用 php 腳本進行此操作時,我無法讓它工作。
有人可以幫我運行嗎?
我嘗試了各種版本:
$cmd = shell_exec("DISPLAY=:0 /home/pi/refresh-browser.sh");
$cmd = shell_exec("sudo pi 'DISPLAY=:0.0 xdotool key F5'");
TLDR:運行xhost si:localuser:www-data
問題是瀏覽器使用用戶www-data
運行 php 腳本,該用戶無權訪問 X window 系統。 要查看正在運行腳本的用戶,請添加echo shell_exec("whoami");
到你的腳本。
您還可以以www-data
用戶身份從命令行運行腳本,以查看瀏覽器中可能未顯示的任何錯誤,如下所示: sudo -u www-data php your_script_filename.php
您可以運行xhost
查看訪問控制狀態和授權用戶, xhost +
禁用它(不推薦,它完全停用身份驗證並允許每個人訪問您屏幕上的所有應用程序), xhost -
(重新)啟用訪問控制
解決方案:將www-data
用戶添加到 X 服務器的授權訪問列表中:
xhost si:localuser:www-data
測試:
pi@raspberrypi:/var/www/html $ export DISPLAY=:0
pi@raspberrypi:/var/www/html $ xhost
access control enabled, only authorized clients can connect
SI:localuser:pi
pi@raspberrypi:/var/www/html $ sudo -u www-data xdotool getactivewindow
No protocol specified
Error: Can\'t open display: (null)
Failed creating new xdo instance
pi@raspberrypi:/var/www/html $ xhost si:localuser:www-data
localuser:www-data being added to access control list
pi@raspberrypi:/var/www/html $ xhost
access control enabled, only authorized clients can connect
SI:localuser:www-data
SI:localuser:pi
pi@raspberrypi:/var/www/html $ sudo -u www-data xdotool getactivewindow
20971521
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.