
假設我不在家,正在家用電腦上進行 ssh 操作。出於任何原因,我需要重新啟動它。
# shutdown -r +10
這透過每分鐘發送一條警告訊息wall
,對於我父母等人的正常桌面使用來說,這是完全不可見的。
有什麼方法wall
可以透過通知等方式將訊息傳送到桌面嗎?
答案1
和的內部結構wall
是如此封閉和古老,一旦訊息進入其中,就沒有辦法從中提取資訊。
為此提出的唯一真正的想法(這個問題之前已經討論過,很多時候)是改變shutdown
和reboot
腳本,這樣它們要么通過 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
訊息。
我建議運行w
或who
命令來確定它們是否在 GNOME 或其他不能wall
正確支援的 DE 上。