You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

树莓派Node.js服务启动后以kiosk模式打开localhost:3000报错咨询

树莓派Kiosk模式运行Node服务报错解决方法

1. 修正npm脚本逻辑

你原来的脚本中wait-on和kiosk.sh之间用了&,会导致wait-on还没完成端口检测就直接执行kiosk.sh,替换为&&保证执行顺序,修正后配置如下:

"scripts": {
    ...
    "kiosk": "concurrently -n \"server,kiosk\" \"npm start\" \"wait-on http://localhost:3000 && bash /home/pi/kiosk.sh\""
},

2. 安装缺失依赖

执行以下命令安装报错涉及的缺失组件:

sudo apt update && sudo apt install -y upower libfontconfig1 unclutter x11-xserver-utils

安装完成后启动UPower服务解决DBus相关报错:

sudo systemctl enable --now upower

3. 修正kiosk.sh脚本

  • 补充图形环境变量:脚本运行时默认缺少图形界面的环境变量声明,会导致xset、chromium找不到显示服务器,需要在脚本开头添加变量声明
  • 补充Chromium禁用GPU参数:树莓派对Chromium的硬件加速支持不完善,添加相关启动参数规避GPU初始化报错

修正后的完整kiosk.sh内容如下:

#!/bin/bash
# 补充图形环境变量
export DISPLAY=:0
export XAUTHORITY=/home/pi/.Xauthority

xset s noblank
xset s off
xset -dpms

unclutter -root &

sed -i 's/"exited_cleanly":false/"exited_cleanly":true/' /home/pi/.config/chromium/Default/Preferences
sed -i 's/"exit_type":"Crashed"/"exit_type":"Normal"/' /home/pi/.config/chromium/Default/Preferences

# 添加禁用GPU相关参数
/usr/bin/chromium-browser --noerrdialogs --disable-infobars --kiosk --disable-gpu --disable-software-rasterizer --disable-features=VizDisplayCompositor http://localhost:3000/ &

4. 开机自启额外配置(如需)

如果你配置了开机自动运行该npm脚本,需要确保启动时机在图形界面加载完成后,避免环境变量加载失败。如果使用systemd配置自启,需要在service配置中添加After=graphical.target字段。

内容的提问来源于stack exchange,提问作者JShoe

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.24 14:15:05