当我尝试通过 Python 程序启动服务器,然后打开其网络应用程序时,我遇到了问题。我无法让它打开服务器,然后也打开网络应用程序。
我尝试在 exit 0 之前修改rc.local
为以下内容:
sudo python /home/pi/Program/program.py &
sudo bash chromium-browser --kiosk https://127.0.0.1:8081/
我也尝试使用bashrc
来执行此操作,但是虽然我能够在启动时运行服务器rc.local
,但我无法在bashrc
启动时运行它。只有当我运行 LXTerminal 时,它才能打开服务器。上rc.local
,相反的问题。可以运行服务器但不能运行浏览器。
我能够自行启动python程序,并自行启动网页(但显然它给出了未找到的地址,因为没有服务器),但不能将两者一起启动。
我尝试将 rc local 修改为 bin/sh -e 但这仍然不起作用。
我正在运行 Rasbian Os。
我无法按照帖子中所说的内容来回答我的问题。答案只告诉你应该做什么,这是我已经知道的,在 GUI 之后启动浏览器,但它没有告诉我该怎么做。它也没有解决我在启动浏览器之前必须启动并运行服务器的问题。我还可以提一下我如何尝试了很多方法,但没有一个起作用...我尝试编辑 autostart 以及 bashrc。
答案1
在这里,我正在回答我自己的问题,因为每个人都这么快地说重复......除了它不是正确的重复。
答案2
如果您想从 运行任何 X 应用程序rc.local
,则必须定义您正在使用的显示器,因为rc.local
它不会在正常的 shell 环境中执行命令。
首先检测您的系统中正在使用哪个显示器:
echo $DISPLAY
输出将是这样的:
:0.0
或者
:1
假设您的DISPLAY
变量是:1
,然后在带有 GUI 应用程序的命令之前添加DISPLAY=:1
,即:
python /home/pi/Program/program.py &
DISPLAY=:1 chromium-browser --kiosk https://127.0.0.1:8081/
当然,删除sudo
是rc.local
从用户那里执行的root
。bash
之前也删除chromium-browser
。
考虑chromium-browser
以普通用户身份运行。假设您的用户名是bob
,然后将命令替换为:
DISPLAY=:1 sudo -u bob chromium-browser --kiosk https://127.0.0.1:8081/
替换bob
为您的真实用户名。