Ubuntu 开机自启 Kiosk 模式浏览器全屏展示网页配置指南

Ubuntu 开机自启 Kiosk 模式浏览器全屏展示网页配置指南

本文档介绍如何通过 autostart 桌面条目,在 Linux 系统登录后自动以 Kiosk(自助服务终端) 模式启动浏览器,并全屏显示指定网页。


一、单用户配置(当前用户生效)

  1. 创建父级目录(若不存在)并编辑启动器文件:
bash 复制代码
mkdir -p /home/teamhd/.config/autostart
nano /home/teamhd/.config/autostart/my-kiosk.desktop
  1. 将以下内容粘贴到文件中(请将 "http://你的网址" 替换为实际地址):
ini 复制代码
[Desktop Entry]
Type=Application
Name=My Kiosk
Exec=google-chrome-stable --kiosk --noerrdialogs --start-fullscreen "http://192.168.20.60:5173"
X-GNOME-Autostart-enabled=true
  1. 保存并退出:
    • Ctrl + X
    • Y 确认保存
    • Enter 返回终端

二、全用户配置(所有登录用户生效)

若希望任何用户登录后都自动启动,使用系统级目录(需 sudo):

bash 复制代码
sudo nano /etc/xdg/autostart/my-kiosk.desktop

粘贴相同内容(同上),保存退出。


三、生效与测试

重启系统验证配置:

bash 复制代码
sudo reboot

重启后应自动进入全屏 Kiosk 模式。


四、工作原理:为什么 .desktop 文件能控制开机自启?

这个机制基于 Linux 桌面环境遵循的 XDG 自动启动规范 (XDG Autostart Specification),并非 .desktop 文件本身有特殊能力,而是由存放位置会话管理器共同决定的。

4.1 文件身份 ------ 它是一个"应用程序启动器"

.desktop 文件是 Linux 下的桌面入口文件(类似于 Windows 的 .lnk 快捷方式或 macOS 的 .app 捆绑包)。

  • Type=Application 表明它是一个应用。
  • Exec= 定义了具体执行的命令(即启动浏览器的完整指令)。
  • Name 仅为显示名称,不影响启动行为。

4.2 特殊目录 ------ 系统约定的"开机自启文件夹"

桌面环境(如 GNOME、KDE、XFCE 等)会监控以下固定目录:

目录 作用范围
~/.config/autostart/ 仅对当前登录用户生效
/etc/xdg/autostart/ 对所有系统用户生效

只要用户成功登录,桌面会话管理器就会自动扫描 这两个目录,并尝试运行其中所有 .desktop 文件。

4.3 触发时机 ------ 登录会话初始化的"自启阶段"

完整的执行流程如下:

  1. 用户输入密码(或自动登录)。
  2. 显示管理器(如 GDM/LightDM)启动桌面会话(GNOME/KDE/XFCE)。
  3. 会话管理器(如 gnome-session)在加载壁纸、面板等核心组件的同时,进入 Autostart Phase(自启阶段)
  4. 它递归读取上述两个目录下的 .desktop 文件。
  5. 检查 X-GNOME-Autostart-enabled=true(虽然该键源于 GNOME,但主流环境均将其视为"启用"标志)。
  6. 条件满足后,会话管理器调用系统 Shell 执行 Exec= 后的命令,浏览器随即以 Kiosk 模式启动。

4.4 与 Windows 自启的区别

  • Windows :开机自启通常依赖注册表或 Startup 文件夹,由系统内核在早期加载。
  • Linux autostart :依赖于用户登录之后、图形界面(X11/Wayland)已就绪 时触发。这也是为什么有时需要用 sleep 延迟启动(如虚拟键盘),以确保显示输出完全初始化。

4.5 如何临时禁止某个自启项?

无需删除文件,只需在 .desktop 文件中添加一行:

ini 复制代码
Hidden=true

桌面环境扫描时会忽略该项。恢复启动时改为 Hidden=false 或直接删除该行即可。


五、浏览器命令与关键参数说明

5.1 各浏览器的启动命令

浏览器 常见命令
Chrome google-chrome-stable
Chromium chromium-browserchromium
Firefox firefox

替换 Exec= 中的命令即可切换浏览器。

5.2 常用启动参数

参数 作用
--kiosk 核心参数 。启动真正的全屏无边框模式,隐藏地址栏、工具栏等所有 UI,用户无法通过常规方式退出(退出需按 Ctrl+W 关标签或 Ctrl+Q 退出浏览器)。
--start-fullscreen 模拟 F11 全屏,通常与 --kiosk 配合使用,增强全屏效果。
--noerrdialogs 禁止弹出任何错误对话框,避免干扰。
--disable-infobars 禁用浏览器顶部的信息栏提示。
--disable-session-crashed-bubble 禁用页面崩溃后的恢复提示气泡。

5.3 典型命令示例

Chrome:

bash 复制代码
google-chrome-stable --kiosk --noerrdialogs --start-fullscreen "https://example.com"

Chromium:

bash 复制代码
chromium-browser --kiosk --noerrdialogs --start-fullscreen "https://example.com"

Firefox(同样支持 --kiosk):

bash 复制代码
firefox "https://example.com" --kiosk

六、扩展:同时启动屏幕键盘(Onboard)

若触屏设备需要虚拟键盘,可在启动浏览器前先运行 onboard,示例:

bash 复制代码
Exec=bash -c "onboard & sleep 2 && chromium --kiosk --noerrdialogs --start-fullscreen 'http://192.168.1.1'"

该命令会后台启动 onboard,等待 2 秒后再启动浏览器,确保键盘先行加载。


七、故障排查提示

  • 若未自动启动,检查 .desktop 文件权限(应至少为 644)。
  • 确认浏览器命令路径是否正确(可用 which google-chrome-stable 等查看)。
  • 检查系统日志:journalctl -xe | grep autostart 或查看 ~/.xsession-errors
  • 若使用 Wayland,某些参数可能需调整为 --ozone-platform-hint=auto 等,视具体环境而定。
相关推荐
byte轻骑兵3 分钟前
【BlueZ 】sdp 模块:服务发现协议的用户态实现基础
linux·人工智能·bluez·电脑蓝牙·嵌入式蓝牙
赴生-15 分钟前
Liunx 操作系统 进程控制(上)
linux
蓝速科技15 分钟前
会议室门牌显示模板选型与品牌视觉适配落地指南丨蓝速科技
大数据·运维·数据库·人工智能·科技
傲世仙尊23 分钟前
从.o到ELF-静态库动态库与可执行文件的生命周期
linux
指尖的爷24 分钟前
【地狱级难度】ubuntu系统GOCV编译安装
linux·运维·ubuntu
xx~t25 分钟前
嵌入式——ARM——汇编2
linux·汇编·arm开发·嵌入式硬件·启动代码
智购科技自动贩卖机31 分钟前
自动售货机嵌入式系统时钟同步与时间管理实战:从RTC校准到断网时间保持的工程实践
大数据·linux·数据库·人工智能·yolo
BizzZ_37 分钟前
Linux(2)——权限
linux
KKKlucifer38 分钟前
跨中台安全业务编排:融合4A平台原子化安全能力的创新实践
运维·人工智能·安全·自动化
j7~39 分钟前
【C++微服务项目开发脚手架】(环境篇)虚拟机 + Docker + MySQL/Redis/RabbitMQ/ES/etcd/FastDFS 全套配齐
linux·c++·ubuntu·docker·vmware·项目开发·微服务脚手架