Peut-être que c'est répondu ailleurs, mais je ne l'ai pas vu.
J'utilise Ubuntu 14.04. Lorsque je SSH dans ma machine, par exemple:
ssh <user>@<machineip> notify-send "Hello"
Je ne vois rien sur le moniteur où je suis connecté à la machine. Si je préfixe notify-send
avec DISPLAY=:0.0
ou DISPLAY=:0
rien de différent ne se produit. Je ne vois jamais aucune notification sur la session en cours.
Y a-t-il une astuce / un commutateur pour que cela fonctionne?
Dans le cas où cela n'est pas clair, permettez-moi de répéter: De l'ordinateur A, je SSH vers l'ordinateur B. Dans la session SSH, je souhaite exécuter notify-send pour s'exécuter sur l'ordinateur B. J'attends qu'une notification de type grognement apparaisse sur le moniteur de l'ordinateur B.
DISPLAY=:0 notify-send 'hello'
travaillé pour moi (pas pour aikeru), essayez cela avant des étapes plus compliquées.Réponses:
Je pense que vous confondez les différentes technologies et leur fonctionnement. Je ne m'attendrais pas à ce que le démon de notification d'un système puisse envoyer des messages via SSH. La définition de la
extrait$DISPLAY
façon dont X11 envoie la sortie d'une application à une autre à des fins d'affichage, maisnotify-send
envoie un message réel au démon de notification. Ce message est envoyé via lalibnotify
bibliothèque.Source: https://developer.gnome.org/libnotify/
Approche par application
Une méthode pour joindre les
notify-send
messages au notificateur de votre système local consiste à utiliser une approche décrite par ce billet de blog intitulé: Notifications IRC via SSH et libnotify . Cette approche devrait être personnalisée pour chaque type de notification que vous souhaitez renvoyer vers votre notificateur local.Tunnelling libnotify sur SSH
Pour une solution plus générale
extraitlibnotify-over-ssh
peut être plus ce que vous recherchez.Affichage sur le serveur distant
Si, d'autre part, vous essayez simplement d'utiliser
notify-send
pour afficher des messages sur un serveur distant auquel vous vous êtesssh
connecté, vous devrez probablement suivre l'une des suggestions qui ont été faites dans cette Q&R intitulée: Utilisation de notify-send avec cron . Même si plusieurs des réponses suggéraient que cela n'était pas nécessaire, j'ai dû faire ce qui suit, comme d'autres l'ont mentionné dans les commentaires sur mon système Fedora 20 utilisant Cinnamon comme bureau pour faire fonctionner les choses.Pour
notify-send
commencer à travailler, j'ai dû définir cette variable avec la valeur appropriée de l'environnement de bureau du système distant.Sur mon système, j'ai pu utiliser un fichier qui est conservé à cet effet précis.
REMARQUE: le nom du fichier DBUS changera de session en session.
la source
notify-send
peut envoyer des messages au démon de notification d'écoute. Lorsque vous vous connectez via SSH, cet environnement ne dispose pas des informations nécessaires pour communiquer avec ce notificateur, c'est le problème sous-jacent.$DISPLAY=:0
fonctionnerait, mais cela ne fonctionne pas aussi pour moi. Je suis sur Fedora 20 en utilisant Cinnamon comme bureau. Utiliserstrace
pour déboguer cela montre qu'il y a une connexion qui ne se fait pas lorsque vous passez par SSH, en recherchant toujours ce qui bloque cela.OMI, vous pourriez utiliser:
Ceci, bien sûr, en supposant que ": 0" est la vraie valeur de la variable DISPLAY, si c'est le seul utilisateur actuellement connecté. Je pense que nous devons utiliser le mot spécial "export" ici parce que nous envoyons deux commandes et si nous exportons la variable qu'il pourra utiliser pour la deuxième commande "notify-send". Les caractères "&&" nous permettent simplement de lancer les deux commandes sur une seule ligne.
la source