Может быть, это ответили где-то еще, но я этого не видел.
Я использую Ubuntu 14.04. Когда я SSH в мою машину, например:
ssh <user>@<machineip> notify-send "Hello"
Я не вижу ничего на мониторе, где я вошел в машину. Если я префикс notify-send
с DISPLAY=:0.0
или DISPLAY=:0
ничего другого не происходит. Я просто никогда не вижу уведомления о текущей сессии.
Есть какой-то трюк / переключатель, чтобы заставить это работать?
В случае, если это не ясно, позвольте мне повторить: с компьютера A я подключаюсь по SSH к компьютеру B. В рамках сеанса SSH я хочу выполнить команду notify-send для запуска на компьютере B. Я ожидаю появления уведомления рычажного типа на мониторе компьютера Б.
DISPLAY=:0 notify-send 'hello'
работали для меня (не для aikeru), попробуйте это перед более сложными шагами.Ответы:
Я думаю, вы путаете различные технологии и то, как они работают. Я не ожидал бы, что демон уведомлений из одной системы сможет отправлять сообщения через SSH. Установка -
выдержка$DISPLAY
это то, как X11 отправляет вывод из приложения в другое для отображения, ноnotify-send
отправляет фактическое сообщение демону уведомлений. Это сообщение отправлено с использованиемlibnotify
библиотеки.Источник: https://developer.gnome.org/libnotify/
Подход к приложению
Одним из способов присоединения
notify-send
сообщений к уведомителю вашей локальной системы является использование подхода, описанного в этом сообщении в блоге под названием: IRC-уведомления через SSH и libnotify . Этот подход должен быть настроен для каждого типа уведомлений, которые вы хотите туннелировать обратно к вашему локальному уведомителю.Туннелирование libnotify по SSH
Для более общего решения
выдержкаlibnotify-over-ssh
может быть больше, что вы ищете.Отображение на удаленном сервере
Если, с другой стороны, вы просто пытаетесь использовать
notify-send
для отображения сообщений на удаленном сервере, к которому выssh
подключались, вам, вероятно, потребуется выполнить одно из предложений, сделанных в этом разделе вопросов и ответов под названием « Использование notify-send». с хрон . Несмотря на то, что в нескольких ответах говорилось, что в этом нет необходимости, я должен был сделать следующее, о чем другие упоминали в комментариях к моей системе Fedora 20, используя Cinnamon в качестве рабочего стола, чтобы все заработало.Чтобы начать
notify-send
работать, мне нужно было установить эту переменную с соответствующим значением из окружения рабочего стола удаленной системы.В моей системе я смог использовать файл, который поддерживается именно для этой цели.
ПРИМЕЧАНИЕ . Имя файла DBUS будет меняться от сеанса к сеансу.
источник
notify-send
может отправлять сообщения демону уведомлений о прослушивании. Когда вы входите через SSH, эта среда не имеет информации, необходимой для связи с этим уведомителем, является основной проблемой.$DISPLAY=:0
будет работать, но это не работает и для меня. Я на Fedora 20 использую Cinnamon в качестве рабочего стола. Использованиеstrace
для отладки показывает, что существует соединение, которое не выполняется при прохождении через SSH, все еще исследуя, что блокирует это.ИМО, может быть, вы могли бы использовать:
Это, конечно, при условии, что «: 0» является реальным значением переменной DISPLAY, если это единственный пользователь, вошедший в систему в данный момент. Я думаю, что мы должны использовать здесь специальное слово «export», потому что мы посылаем две команды, и если мы экспортируем переменная, которую он будет использовать для второй команды «уведомить-отправить». Символы «&&» просто позволяют нам запускать две команды в одной строке.
источник