Запуск Firefox на удаленном хосте (через ssh) открывает новое окно локально: что происходит?

22

Я никогда не замечал такого поведения раньше, и немного смущен тем, что происходит. У меня работает локальная копия firefox, затем ssh ( ssh -X <url>) на удаленный сервер и запускаю копию там, чтобы использовать локальный дисплей. Оказывается, местный firefox только что открыл новое окно. Я подтвердил, ps x|grep firefoxчто на удаленном сервере процесс firefox действительно не запускается.

Такое же странное поведение происходит в обратном порядке: если у меня запущен удаленный firefox и я пытаюсь запустить локальный, тогда удаленный открывает новое окно.

Я на Ubuntu 10.4, с почти полностью новой установкой (я только что получил этот компьютер сегодня днем). Я пытался запустить два Firefox одновременно, чтобы я мог легко запустить список плагинов для установки.

Что здесь происходит, и как я могу избежать этого?

kasterma
источник

Ответы:

9

Если бы мне пришлось сделать обоснованное предположение о том, что здесь происходит, я бы сказал, что firefox сначала ищет открытое окно firefox перед запуском, и, если он существует, отправляет ему сообщение, используя X, чтобы просто запустить новое окно браузера. Поскольку удаленная система использует ваш локальный дисплей, все, что она использует для обнаружения, - это выбор локального окна. (Это также объясняет, почему удаленное окно найдено, когда вы запускаете локальный процесс Firefox.)

Вы можете проверить это, закрыв все локальные окна Firefox, а затем попытавшись запустить Firefox на удаленном сервере - если обнаружение происходит так, как я думаю, не будет никаких запущенных окон, к которым он мог бы привязаться, поэтому Начну экземпляр в удаленной системе, как вы ожидаете.

Что касается фактического решения проблемы, то предложение tante установить MOZ_NO_REMOTE является правильным решением.

р-статические
источник
Тест, безусловно, выходит положительным; Я никогда не знал, что в X была такая система обмена сообщениями.
kasterma
21

Уже давно существует проблема с Firefox, попробуйте запустить Firefox как firefox -no-remote(установка в MOZ_NO_REMOTE=1качестве переменной среды также должна работать).

Вот больше информации

Tante
источник
1
Спасибо, это решает проблему. Я также нашел некоторую информацию в mozillazine: kb.mozillazine.org/… Единственное, что она не решает, это мое замешательство: я на компьютере A, я ssh перешел на компьютер B. На компьютере BI запустите новый firefox, чтобы использовать дисплей на компьютере A, откуда компьютер B знает, что не следует начинать новый процесс? Это должно быть частью протокола X, с которым я не знаком.
Кастерма
В sshd_conf у вас есть опция для этого: она X11Forwarding yes говорит ssh попросить X перенаправить вывод через туннель ssh на ваш X-сервер всякий раз, когда вы запускаете приложение с графическим интерфейсом.
Паткос Чаба