以不同用户身份自动从 rc.local 运行 xinit

以不同用户身份自动从 rc.local 运行 xinit

我正在对我的 raspberry pi b+ 进行一些调整。所以我决定在自动登录后自动启动 midori。使用 startx 可以毫无问题地运行,但 X 仍然需要大量资源。所以我将使用 xinit 和 matchbox 启动 midori。

作为测试,我以用户“pi”的身份使用此命令“xinit ./home/pi/startmidori.sh”,并且成功了。因此我将它放入我的 rc.local 文件中。

有命令“su -l pi -c xinit ./home/pi/startmidori.sh”,这不起作用。我不知道为什么,但是 xinit 启动后立即退出。Xorg 日志文件中没有错误或警告,但有已知错误(未找到模块 g3d_23)。

我该如何解决这个问题?我在指南中找到了某种解决方案,但它们都不起作用。我尝试以 root 身份运行它,但它也不起作用。我不知道为什么。

答案1

不要使用 xinit,而要使用 startx。

打开 rc.local

sudo nano /etc/rc.local

并使用

su -l pi -c startx /home/pi/startmidori.sh

如果我使用 PiTFT,这个解决方案对我来说有效,但如果我通过 HDMI 连接显示器,它只会启动 GUI/桌面而不会启动 Midori。

答案2

使用最新版本的 Raspbian (RaspiOS),您需要执行以下步骤

sudo apt-get install --no-install-recommends xserver-xorg xserver-xorg-legacy xinit xterm 

添加权限任何人

sudo dpkg-reconfigure xserver-xorg-legacy

验证用户是否属于下列组:

adm dialout cdrom sudo audio video plugdev games users input netdev spi i2c gpio

如果你从rc.本地xinit 或 startx,以用户身份启动:

 sudo su -l newuser -c "xinit"

相关内容