How to create a message in Zenity for all users logged into Ubuntu?

-2

I use a script that is run by cron every 1 hour to find updates and update the system.

I wanted the user to be warned that he started the update so that he would not turn off the computer, and when he finished updating another message, he warned.

I was able to do this with Zenity, exporting DISPLAY=0 , the problem is that each started section is a new DISPLAY , and if you have more than one user logged in and it is not DISPLAY 0 you will not receive the% message.

Is there a parameter similar to export DISPLAY=all , so that the message would be sent to all users regardless of who is in DISPLAY 0 ?

My system is Ubuntu 18.04 LTS.

Script that I'm using for testing:

#!bin/bash
export DISPLAY=:0 && zenity --warning --width=600 --title="Atualização automática do sistema" --text "Caro usuário, o sistema encontra-se em processo de atualização no momento, por favor, não desligue o computador até que a atualização seja concluída. Não se preocupe, o sistema irá avisa-lô assim que for finalizado!

Versão atual do sistema: 2.5
Versão da atualização: TESTE
" 
sleep 5s
export DISPLAY=:0 && zenity --warning --width=600 --title="Atualização automática do sistema" --text "A atualização do sistema foi concluída com sucesso, por favor reinicie o computador para aplicar as alterações. 

Aproveite para tomar um café!

Versão anterior do sistema: 2.5
Versão atual do sistema: 2.6
"
    
asked by anonymous 14.12.2018 / 16:06

1 answer

1

The command "w -h" shows the user that is logged in and active and then forward the DISPLAY that is being used, knowing that I used "awk" to extract this information, thus in the script:

export DISPLAY=$(w -h | awk '$2 ~ /:[0-9.]*/{print $2}')
    
02.01.2019 / 16:48