我正在尝试从位于/var/www
的Apache服务器上托管的网页向运行Raspdbian的Raspberry Pi发送按键。
我正在使用xdotool
,它可以使用以下命令发送按键:
xdotool key C
我创建了一个python脚本xdotool.py
,它发送了一些类似的按键:
#!/usr/bin/env python
import os
print 'sending HI'
os.system("export DISPLAY=:0")
os.system("xdotool key H")
os.system("xdotool key I")
我以用户Pi的身份SSH进入Raspberry,从终端运行此脚本工作正常并将键击“HI”发送到Raspberry。
但是,我希望能够通过网页完成此操作。我已经创建了一个运行python脚本并在浏览器中显示终端输出的php脚本,但它不能与xdotool.py脚本一起使用。我已经授予所有用户查看/更改/执行脚本的权限。
我还更改了/etc/apache2/envvars
中的Apache设置,并将用户从www-data更改为pi。用户pi应具有所有必要的权限。
脚本运行,浏览器中显示“发送HI”。但它不发送击键。我从error.log
得到的错误是:
Error: Can't open display: (null)
Failed creating new xdo instance
我有什么想法可以做到这一点?如果有办法让每个人都有权做所有事情,那么看到这个服务器只能在没有互联网访问权限的本地网络上运行就不会有问题。