Terminal

如何向所有活動的 shell 發送通知,如 shutdown 一樣?

  • April 20, 2016

要知道,我剛在那兒做我的事情,突然出現了一條可怕的廣播消息

fiatjaf@mises ~> sl
fiatjaf@mises ~> ls dotfiles/
urxvt
vim/
vimrc
fiatjaf@mises ~> cowsay good morning
______________
< good morning >
--------------
       \   ^__^
        \  (oo)\_______
           (__)\       )\/\
               ||----w |
               ||     ||
fiatjaf@mises ~> 
fiatjaf@mises ~> 
Broadcast message from root@mises
   (/dev/pts/3) at 11:12 ...

The system is going down for maintenance NOW!

如何從我自己的程序中觸發這樣的消息?

man wall會給你你需要的。

wall可以使用文件名執行,也可以通過管道將內容傳遞給它。

例如,無論是,

wall file.name廣播文件的內容file.name

echo "Dive\!" | wall發送消息 潛水!

更新:正如斯蒂芬在這個答案中指出的那樣,更高版本的wall可以通過簡單地輸入來發送消息,

wall message text here

實際上,通過僅指定文件名,對非 root 使用者發送文件內容還有額外的限制。

您只需使用wall; 執行它將root確保每個終端都顯示消息。

wall Your attention please\!

舊版本wall只接受命令行上的文件名,或管道輸入的消息:

echo Your attention please\! | wall

引用自:https://unix.stackexchange.com/questions/277820