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

Asked

Viewed 66 times

-2

Use a script that is run by cron every 1 hour that has the purpose of fetching updates and updating the system.

He wanted the user to be warned that he started the update so that he did not turn off the computer, and when he finished the update another message warning.

I managed to do this with Zenity by exporting the DISPLAY=0, the problem is that each section initialized is a new DISPLAY, and if you have more than one user logged in and they are not DISPLAY 0 will not receive the message.

Is there any parameter similar to export DISPLAY=all, so that the message was sent to all users regardless of who is on DISPLAY 0?

My system is Ubuntu 18.04 LTS.

Script 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
"

1 answer

1


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

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

Browser other questions tagged

You are not signed in. Login or sign up in order to post.