Инициирование сообщения пользовательского интерфейса на основе терминала ssh'd на другой сервер
Я работаю в многооконном многооконном режиме. Я постоянно запускаю сценарии за кулисами.
Это сэкономило бы мне много времени и переключение контекста, если бы я мог запустить скрипт на другом сервере и иметь всплывающее сообщение (Growl Notify или W / E) на моем рабочем столе, сообщая мне, что команда завершилась.
Есть ли способ сделать это в Ubuntu 10?
2 ответа
Вот один из способов сделать это, если у вас настроен SSH без пароля:
ssh my-graphical-workstation 'env DISPLAY=$(w -s $USER | grep -m 1 " :" | awk "{print \$3}") notify-send "Done processing."'
Вам понадобится libnotify-bin установлен на my-graphical-workstation
,
Отрегулируйте его по мере необходимости.
Чтобы добавить хороший ответ @ændrük:
Вам может потребоваться разрешить соединение с удаленного компьютера. На самом простом, используйте
xhost +
но вы должны ограничить это целевым компьютером после работы, если вы не хотите, чтобы весь мир открывал окна X11 на вашем компьютере. Это делается автоматически, если вы делаете ssh -X
, но необходимо добавить вручную, если ssh-соединение не поддерживается.
Если вы всегда на связи, просто добавьте -X
к вашему параметру ssh, чтобы он сделал настройку для вас, как в
user@localhost:path$ ssh -X where_the_script_is_run
user@where_the_script_is_run:path$ run-script; xmessage 'whatever message'
notify-send
не работал для меня удаленно. Вы можете использовать (архаичный) xmessage
программа.