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 等,视具体环境而定。
相关推荐
挨踢诗人10 分钟前
金蝶K3 WISE × 乐企平台 直连数电票集成解决方案(商贸企业开票自动化)
大数据·运维·自动化
光电的一只菜鸡6 小时前
ubuntu之坑(二十)——VMware虚拟机系统无法正常进入如何处理
linux·运维·ubuntu
青 春 记 忆6 小时前
Dify Docker Compose 通用无损升级指南:从备份、双版本预演到切换与回滚
运维·人工智能·python·docker·容器
Java王小怪8 小时前
Docker环境Redis没挂载保存数据
运维·docker·容器
你住过的屋檐8 小时前
【Nginx】linux上安装nginx
linux·运维·nginx
宵时待雨8 小时前
linux笔记归纳17:传输层协议UDP
linux·笔记·udp
晓晓_za89866810 小时前
开源 GEO 优化源码二次开发:贴牌改造与业务模块扩展实践
java·运维·服务器·开发语言·性能优化·开源
SCandL15210 小时前
k8s service
linux·容器·kubernetes
云计算DevOps-韩老师10 小时前
【MySQL运维DBA】【SQL基础系列002篇】
运维·mysql·dba
DBA大董11 小时前
TDengine3.0 DBA常用的运维命令和SQL2
运维·数据库·时序数据库·dba·tdengine