如何在桌面上显示服务通知

如何在桌面上显示服务通知

我想sshd.service在桌面上显示通知以了解是否有人使用 ssh 连接到我的电脑。

我可以通过使用终端并运行来跟踪更改journalctl -t sshd -f,但如果每次都打开终端、运行命令并跟踪更改,则需要我额外注意。

答案1

我已经尝试过以下方法:

  • 检查是否可以在 journalctl 中看到服务日志:journalctl -t sshd -f
  • journalctl创建将运行我的命令并使用桌面上的通知输出它的新服务:sudo vim.tiny /etc/systemd/system/shownotes.service

    [Unit]
    Description=Show notifications from service on the desktop
    After=sshd.service
    
    [Service]
    Type=simple
    ExecStart=/home/user/test/output.sh
    WorkingDirectory=/home/user/test
    StandardOutput=journal+console
    
    [Install]
    WantedBy=multi-user.target
    
  • 创建脚本vim.tiny /home/user/test/output.sh::

    #!/bin/bash
    export DISPLAY=:0 && journalctl -t sshd -f > /dev/pts/0
    

    我用来echo $DISPLAY获取显示值。-/dev/pts/0通知输出设备。-sshd服务,我将直接将其 syslog 的输出定向到DISPLAY=:0

  • 启动并启用新服务:

    sudo systemctl start shownotes && sudo systemctl enable shownotes
    

我可以通过以下方式实时查看新服务的状态:

journalctl -u shownotes -f

结果:
通知图片

但在重新启动并进入 Gnome 会话(而不是 Kubuntu/Plazma)后,它开始显示通知/dev/pts/2

相关内容