有沒有辦法向桌面用戶顯示牆上的消息?

有沒有辦法向桌面用戶顯示牆上的消息?

假設我不在家,正在家用電腦上進行 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

據我所知,wall 指令沒有 X 客戶端來在圖形環境中顯示這些訊息。您可以使用廣西留言用於顯示彈出視窗的應用程序,但您必須自己編寫腳本。

答案4

在我的系統上,Wayland 上使用 KDE Plasma 5.27.10,wall 工作。我可以透過 ssh 輸入wall一條訊息,然後它會顯示通知全部等離子實例。 (如果我切換用戶,然後發送訊息,我會在當前用戶上看到它,然後如果我切換回來,我會在那裡看到它,並帶有適當的時間戳)它還指示哪個用戶發送了訊息。

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

我建議運行wwho命令來確定它們是否在 GNOME 或其他不能wall正確支援的 DE 上。

相關內容