温馨提示×

Ubuntu消息推送如何设置

小樊
45
2025-12-07 10:41:04
栏目: 智能运维

Ubuntu 消息推送设置指南

一 系统桌面通知设置

  • 打开系统设置:点击Activities → 搜索并进入SettingsNotifications。可在顶部全局开关控制是否显示通知,并在下方为每个应用单独开启或关闭通知、声音、横幅等行为。若要让某个应用不弹窗,只需将其对应开关设为关闭即可。此界面也可用于快速排查某应用的通知是否被屏蔽。
  • 命令行快速测试与发送:安装通知工具包(若未安装)并发送测试消息
    • 安装:sudo apt-get install libnotify-bin
    • 发送:notify-send "标题" "内容" -i /path/icon.png -t 3000
      常用参数:
      • -i 指定图标路径
      • -t 显示时长(毫秒),如3000表示显示3秒
        以上设置与命令适用于Ubuntu 20.04/22.04/24.04等常见版本。

二 定时与计划任务通知

  • 使用crontab定时触发通知:
    • 编辑计划任务:crontab -e
    • 示例(每天09:00弹出提醒):0 9 * * * DISPLAY=:0 DBUS_SESSION_BUS_ADDRESS=unix:path=/run/user/$(id -u)/bus notify-send "早安" "该开始一天的工作了"
      要点:
      • 通过DISPLAYDBUS_SESSION_BUS_ADDRESS将通知投递到当前登录桌面会话
      • 可用crontab -l查看、crontab -r清空任务
  • 使用at在相对时间触发通知:
    • 示例(5分钟后提醒):echo "notify-send '时间到' '该休息了'" | at now + 5 minutes
      以上方法适合“备份完成提醒”“下班打卡提醒”等自动化场景。

三 应用内或服务器向 Ubuntu 推送

  • 方案A WebSocket 实时推送(JSP/Tomcat 示例):在服务器端用Java WebSocket维护长连接,向浏览器客户端推送;前端通过ws://连接并在onmessage回调中展示桌面通知(需浏览器允许通知权限)。该方式适合Web 管理后台实时监控等需要服务器主动下发的场景。
  • 方案B MQTT 轻量消息推送(mosquitto):在 Ubuntu 上部署Mosquitto作为 Broker,设备/服务作为客户端订阅/发布主题;订阅端收到消息后可调用notify-send在本地弹出通知。示例:
    • 订阅:mosquitto_sub -h 192.168.1.10 -t "notify" -u test -P 123
    • 发布:mosquitto_pub -h 192.168.1.10 -t "notify" -u test -P 123 -m "部署完成"
      适合物联网多端广播跨主机通知等场景。

四 常见问题与排查

  • 已设置通知却不显示:
    • 检查系统设置→Notifications中对应应用是否被关闭;
    • 命令行测试notify-send "test",若仍无显示,确认当前有图形会话且DISPLAY/DBUS_SESSION_BUS_ADDRESS正确(crontab/at 任务尤其要设置)。
  • 定时任务不弹窗:
    • crontab/at的命令前显式导出环境变量,例如:
      DISPLAY=:0 DBUS_SESSION_BUS_ADDRESS=unix:path=/run/user/$(id -u)/bus notify-send "提醒" "内容"
  • 需要更丰富的通知样式或交互:
    • 可结合GNOME Shell 扩展与浏览器扩展增强桌面通知能力(例如某些 Web 应用的通知集成)。

0