Como envio uma notificação para todos os shells ativos, como o shutdown?

3

Você sabe, eu estava lá, fazendo minhas coisas, quando de repente apareceu uma terrível mensagem de broadcast !

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!

Como pode acionar uma mensagem como esta dos meus próprios programas?

    
por fiatjaf 20.04.2016 / 16:16

2 respostas

7

man wall fornecerá o que você precisa.

Você executa wall com um nome de arquivo ou canaliza conteúdo para ele.

Por exemplo,

wall file.name para transmitir o conteúdo do arquivo file.name ou

echo "Dive\!" | wall para enviar a mensagem Dive!

Atualização: Como Stephen aponta em esta resposta , versões posteriores de wall podem enviar mensagens simplesmente digitação,

wall message text here

e, de fato, existem restrições adicionais para usuários não-root que enviam o conteúdo de arquivos, especificando apenas o nome do arquivo.

    
por 20.04.2016 / 16:22
4

Você simplesmente usa wall ; executá-lo como root garantirá que cada terminal exiba a mensagem.

wall Your attention please\!

Versões antigas de wall aceitam apenas um nome de arquivo em sua linha de comando ou uma mensagem inserida em:

echo Your attention please\! | wall
    
por 20.04.2016 / 16:22