OVH Cloud OVH Cloud

X11Forwarding magique

18 réponses
Avatar
Yves Rutschle
Bonjour les gens,

Si j'ai une machine A, où tourne une session de Firefox, et
que je me loggue sur une machine B en faisant suivre
l'affichage (ssh -X B), et que je lance un nouveau firefox
sur la machine B, magiquement il semble que la machine B
dise au Firefox de la machine A, qui ouvre alors une
nouvelle fenêtre.

- Par quelle magie cela se passe? Je croyais que ssh -X ne
faisait suivre que l'affichage des fenêtre, apparement il
en fait plus...
- Comment l'éviter, dans le cas où je veux vraiment lancer
un Firefox sur la machine B?

Y. - surpris.


--
Pensez à lire la FAQ de la liste avant de poser une question :
http://wiki.debian.net/?DebianFrench

Pensez à rajouter le mot ``spam'' dans vos champs "From" et "Reply-To:"

To UNSUBSCRIBE, email to debian-user-french-REQUEST@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmaster@lists.debian.org

10 réponses

1 2
Avatar
Jeremy Monnet
Salut,

Qu'est-ce qui te fait dire que la nouvelle fenêtre vient de la machine A, et
pas de la machine B comme tu le souhaiterais ?

Sur toutes les machines sur lesquelles je fais du X11Forwarding, seul le
graphique est déporté (j'ai ententu dire en fait que ca redirigeait le socket
servant à l'affichage), toute l'application s'execute bien sur la machine
distante ...

Jeremy
(Pas taper si je dis une bêtise a propos des socket ! ;-) )

Le Tuesday 22 February 2005 15:09, Yves Rutschle a écrit :
Bonjour les gens,

Si j'ai une machine A, où tourne une session de Firefox, et
que je me loggue sur une machine B en faisant suivre
l'affichage (ssh -X B), et que je lance un nouveau firefox
sur la machine B, magiquement il semble que la machine B
dise au Firefox de la machine A, qui ouvre alors une
nouvelle fenêtre.

- Par quelle magie cela se passe? Je croyais que ssh -X ne
faisait suivre que l'affichage des fenêtre, apparement il
en fait plus...
- Comment l'éviter, dans le cas où je veux vraiment lancer
un Firefox sur la machine B?

Y. - surpris.



--
------
Linux Registered User #317862

This mail was sent with 100% free software.
Avatar
Yves Rutschle
On Tue, Feb 22, 2005 at 03:46:10PM +0100, Jeremy Monnet wrote:
Qu'est-ce qui te fait dire que la nouvelle fenêtre vient de la machine A, et
pas de la machine B comme tu le souhaiterais ?



- L'affichage est bien trop rapide pour être vraiment
transporté sur l'adsl
- Il n'y a pas de process "firefox-bin" sur B
- Quand je fais "File->Open" je vois les fichiers de A
- la nouvelle session souffre du pare-feu qu'il y a autour
de A mais pas de B (ma raison d'origine pour la manip)
... c'est tout ce à quoi je pense en ce moment.

Je viens de remarquer que si je ferme mon Firefox sur A,
alors Firefox démarre bien sur B (et l'affichage devient
très lent).

Sur toutes les machines sur lesquelles je fais du X11Forwarding, seul le
graphique est déporté (j'ai ententu dire en fait que ca redirigeait le socket
servant à l'affichage), toute l'application s'execute bien sur la machine
distante ...



C'est ce que je croyais aussi. En fait, la question se
résume probablement à un problème de communication entre
applications par le biais de X (un peu de la même façon qu'on
peut télécommander un XMMS qui tourne à partir de la ligne
de commande).

En l'occurence, je pense que quand je tape "mozilla" sur B,
le nouveau mozilla cherche un mozilla qui tournerait pour
lui dire d'ouvrir une nouvelle fenêtre (comme il le ferait
en local), et magiquement trouve celui qui tourne sur A.
D'où ma question sur la magie qui fait ça.

Y.


--
Pensez à lire la FAQ de la liste avant de poser une question :
http://wiki.debian.net/?DebianFrench

Pensez à rajouter le mot ``spam'' dans vos champs "From" et "Reply-To:"

To UNSUBSCRIBE, email to
with a subject of "unsubscribe". Trouble? Contact
Avatar
tnemeth
Selon Yves Rutschle :

| Bonjour les gens,

Salut tout seul :)


| Si j'ai une machine A, où tourne une session de Firefox, et
| que je me loggue sur une machine B en faisant suivre
| l'affichage (ssh -X B), et que je lance un nouveau firefox
| sur la machine B, magiquement il semble que la machine B
| dise au Firefox de la machine A, qui ouvre alors une
| nouvelle fenêtre.
|
| - Par quelle magie cela se passe? Je croyais que ssh -X ne
| faisait suivre que l'affichage des fenêtre, apparement il
| en fait plus...

Non non :)
À vérifier :
en fait, lorsque tu fais un ssh -X tu crées un nouveau display
(généralement en 10:0) mais comme tu as déjà une session de
FireFox ouverte, lorsque tu le relances il prend ça comme une
ouverture d'une nouvelle fenêtre sur un autre display et, par
défaut, t'affiche la page en cours dans la session déjà lancée.


| - Comment l'éviter, dans le cas où je veux vraiment lancer
| un Firefox sur la machine B?

killall firefox
firefox

Thomas.


--
Pensez à lire la FAQ de la liste avant de poser une question :
http://wiki.debian.net/?DebianFrench

Pensez à rajouter le mot ``spam'' dans vos champs "From" et "Reply-To:"

To UNSUBSCRIBE, email to
with a subject of "unsubscribe". Trouble? Contact
Avatar
tnemeth
Selon Yves Rutschle :

| On Tue, Feb 22, 2005 at 04:40:56PM +0100, wrote:
| > en fait, lorsque tu fais un ssh -X tu crées un nouveau display
| > (généralement en 10:0) mais comme tu as déjà une session de
| > FireFox ouverte, lorsque tu le relances il prend ça comme une
| > ouverture d'une nouvelle fenêtre sur un autre display et, par
| > défaut, t'affiche la page en cours dans la session déjà lancée.
|
| Donc, on peut, par l'intermediare de X, demander à un
| display si une certaine application est lancée, et donner
| des ordres à cette application?

Par l'interméidaire de ssh plutôt.
Je ne vois pas de contre-indication...


--
Pensez à lire la FAQ de la liste avant de poser une question :
http://wiki.debian.net/?DebianFrench

Pensez à rajouter le mot ``spam'' dans vos champs "From" et "Reply-To:"

To UNSUBSCRIBE, email to
with a subject of "unsubscribe". Trouble? Contact
Avatar
Yves Rutschle
On Tue, Feb 22, 2005 at 04:40:56PM +0100, wrote:
en fait, lorsque tu fais un ssh -X tu crées un nouveau display
(généralement en 10:0) mais comme tu as déjà une session de
FireFox ouverte, lorsque tu le relances il prend ça comme une
ouverture d'une nouvelle fenêtre sur un autre display et, par
défaut, t'affiche la page en cours dans la session déjà lancée.



Donc, on peut, par l'intermediare de X, demander à un
display si une certaine application est lancée, et donner
des ordres à cette application?

Y.


--
Pensez à lire la FAQ de la liste avant de poser une question :
http://wiki.debian.net/?DebianFrench

Pensez à rajouter le mot ``spam'' dans vos champs "From" et "Reply-To:"

To UNSUBSCRIBE, email to
with a subject of "unsubscribe". Trouble? Contact
Avatar
Jeremy Monnet
Le Tuesday 22 February 2005 17:19, a écrit :
Selon Yves Rutschle :
| On Tue, Feb 22, 2005 at 04:40:56PM +0100, wrote:
| > en fait, lorsque tu fais un ssh -X tu crées un nouveau display
| > (généralement en 10:0) mais comme tu as déjà une session de
| > FireFox ouverte, lorsque tu le relances il prend ça comme une
| > ouverture d'une nouvelle fenêtre sur un autre display et, par
| > défaut, t'affiche la page en cours dans la session déjà lan cée.
|
| Donc, on peut, par l'intermediare de X, demander à un
| display si une certaine application est lancée, et donner
| des ordres à cette application?

Par l'interméidaire de ssh plutôt.
Je ne vois pas de contre-indication...



Dans ce cas, pourquoi cette attitude est-elle reservée a firefox ?
Je viens de reproduire chez moi ce fonctionnement, mais seul firefox est
touché :
quand j'ai une appli ouverte en local (skype, amsn, konqueror) et que j'en
ouvre une autre sur la machine distante, les 2 sont des instances sépar ées
(exemple : j'ai le thème baghira pur kde sur mon laptop, ce thème n'est
visible que sur l'appli locale, ou alors si je ferme la session distante,
l'appli se ferme aussi). Alors que firefox ouvre une autre fenêtre locale ...
c'est-a-dire que si je ferme ma session distante, firefox reste ouvert ...

Pour l'instant je n'ai trouvé ce comportement que avec firefox, si quelqu 'un
pouvait nous expliquer, ca m'intéresse aussi beaucoup !

Jeremy
--
------
Linux Registered User #317862

This mail was sent with 100% free software.
Avatar
Jean-Yves LENHOF
Le mardi 22 février 2005 à 19:58 +0100, Jeremy Monnet a écrit :
Le Tuesday 22 February 2005 17:19, a écrit :
> Selon Yves Rutschle :
> | On Tue, Feb 22, 2005 at 04:40:56PM +0100, wrote:
> | > en fait, lorsque tu fais un ssh -X tu crées un nouveau display
> | > (généralement en 10:0) mais comme tu as déjà une session de
> | > FireFox ouverte, lorsque tu le relances il prend ça comme une
> | > ouverture d'une nouvelle fenêtre sur un autre display et, par
> | > défaut, t'affiche la page en cours dans la session déjà lancée.
> |
> | Donc, on peut, par l'intermediare de X, demander à un
> | display si une certaine application est lancée, et donner
> | des ordres à cette application?
>
> Par l'interméidaire de ssh plutôt.
> Je ne vois pas de contre-indication...

Dans ce cas, pourquoi cette attitude est-elle reservée a firefox ?
Je viens de reproduire chez moi ce fonctionnement, mais seul firefox est
touché :
quand j'ai une appli ouverte en local (skype, amsn, konqueror) et que j'en
ouvre une autre sur la machine distante, les 2 sont des instances séparées
(exemple : j'ai le thème baghira pur kde sur mon laptop, ce thème n'est
visible que sur l'appli locale, ou alors si je ferme la session distante,
l'appli se ferme aussi). Alors que firefox ouvre une autre fenêtre locale ...
c'est-a-dire que si je ferme ma session distante, firefox reste ouvert ...

Pour l'instant je n'ai trouvé ce comportement que avec firefox, si quelqu'un
pouvait nous expliquer, ca m'intéresse aussi beaucoup !

Jeremy



L'explication est là :
:~$ which firefox
/usr/bin/firefox
:~$ file /usr/bin/firefox
/usr/bin/firefox: symbolic link to `../lib/mozilla-firefox/firefox'
:~$ file /usr/lib/mozilla-firefox/firefox
/usr/lib/mozilla-firefox/firefox: Bourne shell script text executable
:~$

Extrait de /usr/lib/mozilla-firefox/firefox

PING_STATUS=1

# No need to check if DISPLAY is not set, it will fail. But let's
continue,
# so that firefox gives the display error message itself.
if [ "${DISPLAY}" ] || [ "${CMDLINE_DISPLAY}" ]; then
if [ -z "${CMDLINE_DISPLAY}" ]; then
CMDLINE_DISPLAY="${DISPLAY}"
fi

# check to see if there's an already running instance or not
verbose "Running: ${MOZ_PROGRAM} -remote 'ping()'"
DISPLAY="${CMDLINE_DISPLAY}" ${MOZ_PROGRAM} -remote 'ping()'
> /dev/null 2>&1
PING_STATUS=$?
fi

echo_vars PING_STATUS

# Clean user profile if we are not trying to use the running instance
and only
# if the check was successful (status 2)
if [ "${REMOTE}" -eq 0 ] && [ "${TRY_USE_EXIST}" -eq 0 ] &&
[ "${PING_STATUS}" -eq 2 ]; then



Donc si tu démarres avec quelque chose sur la ligne de commande, du
genre :
firefox -contentLocale FR_fr
ou
sans rien
firefox
c'est différent

L'un s'éxecutera avec le process courant local et non distant (et à
distance s'il y en a pas de local) alors
que l'autre s'éxécutera toujours à distance

A+

JYL



--
Pensez à lire la FAQ de la liste avant de poser une question :
http://wiki.debian.net/?DebianFrench

Pensez à rajouter le mot ``spam'' dans vos champs "From" et "Reply-To:"

To UNSUBSCRIBE, email to
with a subject of "unsubscribe". Trouble? Contact
Avatar
fra-duf-no-spam
Le 12836ième jour après Epoch,
écrivait:

Selon Yves Rutschle :

| On Tue, Feb 22, 2005 at 04:40:56PM +0100, wrote:
| > en fait, lorsque tu fais un ssh -X tu crées un nouveau display
| > (généralement en 10:0) mais comme tu as déjà une session de
| > FireFox ouverte, lorsque tu le relances il prend ça comme une
| > ouverture d'une nouvelle fenêtre sur un autre display et, par
| > défaut, t'affiche la page en cours dans la session déjà
| > lancée.



Attention... La session de firefox déjà ouverte est sur la machine A,
et le DISPLAY est sur la machine B. Avec un shell qui tourne sur
B. Donc le shell de B n'a aucune raison de vérifier ce qu'il se passe
sur A.

| Donc, on peut, par l'intermediare de X, demander à un
| display si une certaine application est lancée, et donner
| des ordres à cette application?

Par l'interméidaire de ssh plutôt.
Je ne vois pas de contre-indication...



En tout cas, il m'est arrivé la même chose il y a très longtemps avec
Netscape. Au début, j'ai crû à une erreur de manip, mais en fait non.

L'explication de Jean-Yves me semble un peu fumeuse (c'est pas
péjoratif...), et je ne vois rien dans l'extrait du script qui amène
ce genre de conclusion.

Pour ma part, et bien qu'assez ignare dans l'univers du XForwarding et
autres beautés du X ;) ... Mes supputations vont dans la direction
suivante:

- La machine A possède un process FireFox ouvert

- La machine A se connecte à B en ssh

- Un shell est donc lancé sur la machine B avec un display sur la
machine A

- Un firefox est lancé sur la machine B

- Une demande d'ouverture de fenêtre de type FireFox arrive sur le
serveur X de la machine A

- (supposé) Le firefox de la machine A reçoit les 'infos' de la
fenêtre venant de s'ouvrir en A

- (supposé) Le firefox de la machine B, voyant qu'il n'a pas/plus la
main sur la fenêtre, quitte.

- (supposé) Le firefox de la machine A continue à tourner avec la
nouvelle fenêtre.

Voilà. Ce scénar marche pour moi avec mozilla (j'ai pas FireFox), mais
pas avec Galeon.

HTH

--
Sometimes we choose the generalization. Sometimes we don't.
-- Larry Wall in


--
Pensez à lire la FAQ de la liste avant de poser une question :
http://wiki.debian.net/?DebianFrench

Pensez à rajouter le mot ``spam'' dans vos champs "From" et "Reply-To:"

To UNSUBSCRIBE, email to
with a subject of "unsubscribe". Trouble? Contact
Avatar
tnemeth
Selon François TOURDE :

| Le 12836ième jour après Epoch,
| écrivait:
|
| > Selon Yves Rutschle :
| >
| > | On Tue, Feb 22, 2005 at 04:40:56PM +0100, wrote:
| > | > en fait, lorsque tu fais un ssh -X tu crées un nouveau
| display
| > | > (généralement en 10:0) mais comme tu as déjà une session de
| > | > FireFox ouverte, lorsque tu le relances il prend ça comme
| une
| > | > ouverture d'une nouvelle fenêtre sur un autre display et,
| par
| > | > défaut, t'affiche la page en cours dans la session déjà
| > | > lancée.
|
| Attention... La session de firefox déjà ouverte est sur la machine A,
| et le DISPLAY est sur la machine B. Avec un shell qui tourne sur
| B. Donc le shell de B n'a aucune raison de vérifier ce qu'il se passe
| sur A.

Non, mais si tu fais un ssh à partir de B vers la machine A, le
DISPLAY sera bien sur B, mais le processus sera exécuté sur A.
Donc il vérifiera ce qui se passe sur A sans aucun souci.


| > | Donc, on peut, par l'intermediare de X, demander à un
| > | display si une certaine application est lancée, et donner
| > | des ordres à cette application?
| >
| > Par l'interméidaire de ssh plutôt.
| > Je ne vois pas de contre-indication...
|
| En tout cas, il m'est arrivé la même chose il y a très longtemps avec
| Netscape. Au début, j'ai crû à une erreur de manip, mais en fait non.
|
| L'explication de Jean-Yves me semble un peu fumeuse (c'est pas
| péjoratif...), et je ne vois rien dans l'extrait du script qui amène
| ce genre de conclusion.
|
| Pour ma part, et bien qu'assez ignare dans l'univers du XForwarding
| et
| autres beautés du X ;) ... Mes supputations vont dans la direction
| suivante:
|
| - La machine A possède un process FireFox ouvert

Ok.


| - La machine A se connecte à B en ssh

Heu, non, c'est l'inverse...


| - Un shell est donc lancé sur la machine B avec un display sur la
| machine A

- Un shell est lancé sur la machine A avec un display sur B.


| - Un firefox est lancé sur la machine B

Sur A. Or il existe déjà une instance de firefox sur A.
C'est cette instance qui, utilisant un nouveau DISPLAY (à cause
du shell lancé par ssh avec un 10:0) recharge la page en cours
sur A (qui est sur le display 0:0) et l'affiche dans la nouvelle
fenêtre ouverte sur 10:0.

Techniquement c'est tout con : on ouvre une nouvelle fenêtre d'une
appli déjà lancée en 0:0 sur un display différent (ça pourait être
0:1 ou 10:0 que ce serait pareil). Le fait est que 10:0 est
affiché sur une machine distante peut paraître déroutant, mais je
ne vois vraiment pas où est le problème... À moins que je n'ai
rien compris à ce qui s'était passé :)

Thomas.


--
Pensez à lire la FAQ de la liste avant de poser une question :
http://wiki.debian.net/?DebianFrench

Pensez à rajouter le mot ``spam'' dans vos champs "From" et "Reply-To:"

To UNSUBSCRIBE, email to
with a subject of "unsubscribe". Trouble? Contact
Avatar
Yves Rutschle
On Wed, Feb 23, 2005 at 10:30:29AM +0100, wrote:
| - La machine A se connecte à B en ssh
Heu, non, c'est l'inverse...



Non non.


| - Un shell est donc lancé sur la machine B avec un display sur la
| machine A

- Un shell est lancé sur la machine A avec un display sur B.



Non, la machine B n'a d'ailleurs pas d'écran. Tout
l'affichage se passe sur A.

| - Un firefox est lancé sur la machine B

Sur A. Or il existe déjà une instance de firefox sur A.
C'est cette instance qui, utilisant un nouveau DISPLAY (à cause
du shell lancé par ssh avec un 10:0) recharge la page en cours
sur A (qui est sur le display 0:0) et l'affiche dans la nouvelle
fenêtre ouverte sur 10:0.



Techniquement c'est tout con : on ouvre une nouvelle fenêtre d'une
appli déjà lancée en 0:0 sur un display différent (ça pourait être
0:1 ou 10:0 que ce serait pareil). Le fait est que 10:0 est
affiché sur une machine distante peut paraître déroutant, mais je
ne vois vraiment pas où est le problème... À moins que je n'ai
rien compris à ce qui s'était passé :)



Je récapète depuis le bedut:

- Je travaille sur la machine A (qui est donc aussi ma
console, avec son display et tout). J'ai là une instance
de Firefox.
- Je me connecte par ssh sur la machine B. (Incidemment, la
machine B n'a aucun moyen de se connecter sur A, pour
causes de pas de clés et de pare-feux).
- Je lance Firefox sur la machine distante B.
- Magiquement, Firefox sur la machine B trouve l'instance de
Firefox qui tourne sur la machine A, et lui dit d'ouvrir
une nouvelle fenêtre, comme si j'avais lancé un nouveau
Firefox sur A. Il n'y a ensuite plus de processus Firefox
sur B.

Je ne suis pas sûr à quelle configuration tes commentaires
s'appliquent, mais je ne les comprend pas non plus :-)

Y.


--
Pensez à lire la FAQ de la liste avant de poser une question :
http://wiki.debian.net/?DebianFrench

Pensez à rajouter le mot ``spam'' dans vos champs "From" et "Reply-To:"

To UNSUBSCRIBE, email to
with a subject of "unsubscribe". Trouble? Contact
1 2