web-dev-qa-db-fra.com

Existe-t-il un moyen d’afficher des messages sur le mur aux utilisateurs de postes de travail?

Disons que je suis loin de chez moi, ssh-ing sur mon ordinateur à la maison. Pour une raison quelconque, j'ai besoin qu'il soit redémarré.

# shutdown -r +10

Cela envoie un message d’avertissement chaque minute via wall , qui est complètement invisible pour une utilisation normale du bureau par, disons, mes parents.

Existe-t-il un moyen que les messages wall puissent atteindre le bureau via, par exemple, une notification?.

9
badp

Les composants internes de wall sont si anciens et si bloqués qu’il n’ya vraiment aucun moyen d’en extraire le message une fois qu’il est dedans.

La seule idée réelle mise en avant pour cela ( le problème a été discuté auparavant , plusieurs fois) est de modifier les scripts shutdown et reboot de manière à rendre disponible quelque chose via dbus. ou (étant donné que nous ne traitons qu’avec un ordinateur et un correctif), vous pouvez simplement lui demander d’envoyer un message notify-send.

ne sont que des scripts, vous pouvez donc les pirater. Mais je pense que c'est probablement une cause qui mérite d'être poussée. Soumettez un bogue contre Ubuntu et ajoutez vos correctifs (assurez-vous simplement qu'ils peuvent fonctionner sans envoyer la notification s'il n'y a pas d'environnement X). C'est ce genre de facilité d'utilisation dont nous avons besoin.

Je n'ai jamais entendu parler de gxmessage, mais j'utiliserais notify-send.

Une solution complète devrait prendre en compte la possibilité d'afficher plusieurs écrans (par exemple, multi-têtes, utilisateurs distants, etc.), mais heureusement, j'ai écrit du code pour ce bit hier:

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

(J'utilise export au lieu d'un drapeau -display ou --display parce que je ne sais pas que notify-send prend l'un ou l'autre.)

8
Oli

Vous pouvez envoyer un message manuellement à l'aide de zenity.

zenity --warning --text "badp's about to restart the computer" --display=:0

Bien sûr, vous pouvez inclure ceci dans un script.

2
misterben

Vous devriez être capable d'écrire un script qui crée un ptty et écoute les messages écrits (depuis l'écriture ou le mur), puis les transfère vers une sortie graphique.

1
singpolyma

Autant que je sache, il n'y a pas de client X pour que la commande wall affiche ces messages dans un environnement graphique. Vous pouvez utiliser l'application gxmessage pour afficher les fenêtres contextuelles, mais vous devrez alors écrire le script vous-même.

0
tinhed