Uruchomienie firefoxa na zdalnym hoście (przez ssh) lokalnie otwiera nowe okno: co się dzieje?

22

Nigdy wcześniej nie zauważyłem tego zachowania i jestem trochę zdezorientowany, co się dzieje. Mam uruchomioną lokalną kopię Firefoksa, a następnie ssh ( ssh -X <url>) na zdalnym serwerze i tam uruchomię kopię, aby użyć lokalnego wyświetlacza. Okazuje się, że lokalny firefox właśnie otworzył nowe okno. Sprawdziłem, ps x|grep firefoxczy rzeczywiście na serwerze zdalnym nie uruchomiono żadnego procesu firefox.

To samo dziwne zachowanie dzieje się odwrotnie: jeśli mam uruchomiony zdalny firefox i próbuję uruchomić lokalny, to zdalny otwiera nowe okno.

Jestem na Ubuntu 10.4, z prawie całkowicie nową instalacją (właśnie dostałem ten komputer tego popołudnia). Próbowałem uruchomić dwa firefoxy jednocześnie, aby móc łatwo uruchomić listę wtyczek do zainstalowania.

Co się tutaj dzieje i jak mogę tego uniknąć?

Kasterma
źródło

Odpowiedzi:

9

Gdybym musiał odgadnąć, co się tutaj dzieje, powiedziałbym, że firefox najpierw szuka otwartego okna firefoxa przed uruchomieniem, a jeśli tak, wysyła komunikat za pomocą X, aby po prostu uruchomić nowe okno przeglądarki. Ponieważ system zdalny używa lokalnego wyświetlacza, cokolwiek wykorzystuje do wykrywania, podnosi okno lokalne. (To by również wyjaśniało, dlaczego zdalne okno jest znalezione podczas uruchamiania lokalnego procesu firefox).

Możesz to przetestować, zamykając wszystkie lokalne okna firefox, a następnie próbując uruchomić firefox na zdalnym serwerze - jeśli wykrywanie odbywa się tak, jak myślę, nie będzie żadnych uruchomionych okien, w których mógłby się zatrzasnąć, więc Uruchomię instancję w systemie zdalnym tak, jak się spodziewasz.

Jeśli chodzi o naprawienie problemu, propozycja tante, aby ustawić MOZ_NO_REMOTE, jest właściwym rozwiązaniem.

p-statyczny
źródło
Test na pewno wychodzi pozytywnie; Nigdy nie wiedziałem, że w X był taki system przesyłania wiadomości
kasterma
21

Wystąpił problem z firefoxem od dłuższego czasu, spróbuj uruchomić firefoxa as firefox -no-remote(ustawienie MOZ_NO_REMOTE=1jako zmienna środowiskowa powinna również działać).

Oto więcej informacji

tante
źródło
1
Dzięki, to rozwiązuje problem. Znalazłem też trochę informacji w mozillazine: kb.mozillazine.org/… Jedną z rzeczy, których nie rozwiązuje, jest moje zamieszanie: jestem na komputerze A, ssh do komputera B. Na komputerze BI uruchom nowy firefox, aby użyć wyświetlacza na komputerze A, skąd komputer B wie, że nie powinien rozpocząć nowego procesu? To musi być część protokołu X, którego nie znam.
kasterma
W sshd_conf masz taką opcję: X11Forwarding yes To każe ssh poprosić X o przekazanie danych wyjściowych przez tunel ssh do twojego serwera X za każdym razem, gdy uruchamiasz aplikację z GUI.
Patkos Csaba,