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-browser 或 chromium
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 等,视具体环境而定。
相关推荐
GeW7 小时前
如何打造真正的数字化工厂?需从Red Hat到数据库底层打捞基石
linux
沫璃染墨7 小时前
从零入门计算机网络系列(一):计算机网络初识——从网络发展史到TCP/IP协议》
linux·网络·网络协议·tcp/ip·计算机网络
云贝贝贝7 小时前
PostgreSQL 分区表:从设计到运维,大表不再卡
运维·数据库·postgresql
fengkai45459 小时前
十二、Redis -1
运维·数据库·redis
忆挽篱笙歌9 小时前
gdb/cgdb
linux·ubuntu
甜到心里的蛋糕9 小时前
Playwright 无头浏览器自动发布 CSDN 图文草稿的实践(持久化 profile + 图床直传)
运维·python·playwright·爬虫自动化·博客运营
凌云若寒10 小时前
BarTender提示#807错误:无法在拥有其他许可证的Licensing Service上激活节点锁定的 Professional 版许可证 的解决办法
运维·服务器·前端·学习·软件需求
Julien200410 小时前
管理 Ansible 配置文件
linux·运维·服务器·ssh·学习方法
MicrosoftCloud11 小时前
性能排查 01|free 显示内存用了 90% 就是快满了吗?buff/cache 与 available 一次讲清
linux·运维·内存·free·buff/cache
灯澜忆梦11 小时前
【docker】#1 | Docker 初识
运维·docker·容器