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 等,视具体环境而定。
相关推荐
牢姐与蒯1 小时前
Linux基本指令及知识点(二)
linux·运维·服务器
小玮看世界1 小时前
[Python]从“脏”数据到优雅实现:一个IoT滑动窗口最大值问题的测试驱动优化实录
linux·前端·python
ᥬ 小月亮1 小时前
SonarQube使用教程(Docker安装)
运维·docker·容器
去伪存真20252 小时前
数字样机、态势推演与3D汇报场景下的平台选型对比
运维·服务器
自动化测试行业观察2 小时前
从“自动化”到“智能化”:TestMan AI测试平台引领软件测试范式转移
运维·自动化测试·人工智能·测试工具·自动化·app测试·移动应用测试
xiaoxiangsiyan2 小时前
运维之前端反调试学习
运维·前端·学习·状态模式
BLi4ee3 小时前
WSL 文件资源管理器左侧 Linux / Ubuntu 入口恢复
linux·ubuntu
深圳市恒星物联科技有限公司3 小时前
破解复杂水务监测难题:投入式压力液位计如何实现“零中断”长效运维?
运维·物联网·智慧城市
自律最差的编程狗3 小时前
从零搭建:VMware + Ubuntu + Docker + MySQL 完整指南
mysql·ubuntu·docker
RPA机器人就用八爪鱼3 小时前
八爪鱼RPA客服质检自动化:会话记录采集与关键词分析方案
运维·自动化·rpa