使用 rc.local 启动服务器然后启动 Web 应用程序?

使用 rc.local 启动服务器然后启动 Web 应用程序?

当我尝试通过 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

在这里,我正在回答我自己的问题,因为每个人都这么快地说重复......除了它不是正确的重复。

我正在寻找这个:https://raspberrypi.stackexchange.com/questions/40631/setting-up-a-kiosk-with-chromium/40745#40745?newreg=c9704e6834f541ffb621ede086bdccc2

答案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/

当然,删除sudorc.local从用户那里执行的rootbash之前也删除chromium-browser

考虑chromium-browser以普通用户身份运行。假设您的用户名是bob,然后将命令替换为:

DISPLAY=:1 sudo -u bob chromium-browser --kiosk https://127.0.0.1:8081/

替换bob为您的真实用户名。

相关内容