有没有办法让墙上的消息显示给桌面用户?

有没有办法让墙上的消息显示给桌面用户?

假设我不在家,正在使用家用电脑进行 ssh 连接。出于某种原因,我需要重新启动电脑。

# shutdown -r +10

这将每分钟通过以下方式发送警告消息:wall,对于我父母等正常的桌面使用来说,它是完全不可见的。

有没有什么办法wall可以让消息通过通知等方式到达桌面?

答案1

和的内部结构wall非常封闭且古老,因此一旦信息进入其中,就根本无法从中提取信息。

对此提出的唯一真正想法(这个问题之前已经讨论过了,很多次)是改变shutdownreboot脚本,以便它们要么通过 dbus 提供某些东西,要么(因为我们只处理一台计算机和一个修复程序)你可以让它发送一个通知发送消息。

他们只是脚本,所以你可以直接入侵它们。但我认为这可能是一个值得推动的事业。提交针对 Ubuntu 的错误并添加你的补丁(只要确保它们可以工作而无需在没有 X 环境的情况下发送通知)。我们需要的就是这种可用性。

我以前从未听说过gxmessage,但我会使用notify-send

完整的解决方案需要满足多显示器的可能性(例如多头、远程用户等),但值得庆幸的是,我昨天为该部分编写了一些代码:

for display in `ps aux | grep -oE "/usr/bin/X\s[^ ]+" | cut -d " " -f 2`; do
    DISPLAY=$display notify-send -u critical 'Shutdown notice' 'Save all your work. THE SYSTEM IS GOING DOWN!!' -i /usr/share/pixmaps/gnome-computer.png
done

(我使用导出而不是-display--display标志,因为我不知道这notify-send是否需要)

答案2

您可以使用 zenity 手动发送消息

zenity --warning --text "badp's about to restart the computer" --display=:0

当然,您可以将其包含在脚本中。

答案3

据我所知,没有 X 客户端可以让 wall 命令在图形环境中显示这些信息。您可以使用短信用于显示弹出窗口的应用程序,但你必须自己编写脚本。

答案4

在我的系统上,使用 Wayland 上的 KDE Plasma 5.27.10,wall 有效。我可以 ssh 进入,wall一条消息,它会在全部plasma 实例。(如果我切换用户,然后发送消息,我会在当前用户上看到它,然后如果我切换回来,我会在那里看到它,并带有适当的时间戳)它还指示哪个用户发送了消息。

Wayland 上的 GNOME Shell 45.3才不是支持wall信息。

我建议运行wwho命令来确定它们是否在 GNOME 或另一个无法wall正确支持的 DE 上。

相关内容