2009-02-05 6 views
2

J'ai un projet à faire à l'école qui me baffeling ... Je suis l'exécution de ssh dans un ordinateur Solaris dans le laboratoire informatique de ma propre boîte Debian viaids ssh et fenêtre

ssh -Y [email protected]***.cs.<school> 

je peux obtenir en très bien, et le X11 semble fonctionner aussi. Cependant, ce projet peticular nous oblige à trouver l'identifiant de la fenêtre d'une fenêtre netscape via xwininfo et utiliser ces informations dans la commande suivante

netscape -id 0xa00029 -remote 'openFile(/path/to/html/file)' 

Maintenant, si ce netscape est la seule fenêtre, j'ai ouvert (autre que xterm) , la commande précédente fonctionne très bien. Cependant, si j'ai d'autres fenêtres Iceweasel ouvertes (indépendamment de l'ordre dans lequel j'ai ouvert netscape/iceweasel) la commande transmettra à mon iceweasel malgré les faits que je cours la commande dans ma session SSH et les deux fenêtres avoir des identifiants de fenêtre très différents.

Tout cela doit éventuellement être intégré dans un programme C, mais je n'arrive même pas à le faire fonctionner de manière fiable manuellement!

Des idées?

P.S. Je viens de voir cela qui peut aider. Quand je SSHed via Cygwin/X en utilisant la même commande, je reçois cette erreur

Warning: No xauth data; using fake authentication data for X11 forwarding. 

Je ne sais pas si cela est important que je peux encore utiliser X11 (aparently) parfaitement.

Merci.

P.P.S -id est documenté dans les pages de manuel netscape:

-id window-id 
     Identifies an X window to receive -remote commands. If 
     you do not specify a window, the first window found is 
     used. 

Répondre

0

Je me suis assis à une machine réelle pour effectuer les mêmes tests, et ils échouent tous là aussi ... Je voudrais ouvrir 2 fenêtres Netscape et essayer de diriger la commande à un à la fois. Le plus récemment ouvert fonctionnerait correctement, mais toute commande dirigée vers l'autre serait transmise à la même fenêtre, donc à ce stade je suis convaincu que le problème réside dans le fait que la commande n'est pas correctement implémentée et/ou tout sur ce système étant vraiment, vraiment vieux.

2

Lorsque vous utilisez -Y ssh, vous demandez que les clients distants soient transférés vers votre serveur X local, avec les autorisations. Le Netscape/Mozilla/Firefox/Iceweasel/Etc. Le protocole distant s'exécute sur le serveur X, il sera donc également transféré.

http://www.mozilla.org/unix/remote.html documente le protocole et ne mentionne rien à propos de -id. Un regard très rapide sur la source (par exemple, http://mxr.mozilla.org/seamonkey/source/widget/src/xremoteclient/XRemoteClient.cpp#202) ne semble pas non plus prometteur car il existe une option -id.

0

si j'ai d'autres fenêtres de Iceweasel ouverte (quel que soit l'ordre dans lequel j'ai ouvert netscape/Iceweasel) la commande transmettra à mon Iceweasel malgré les faits que je suis en cours d'exécution de la commande dans ma session SSH et les deux fenêtres ont des identifiants de fenêtre très différents

Iceweasel est codé de cette façon. Il essaie d'avoir un seul processus exécuté pour toutes les fenêtres ouvertes pour cet utilisateur.Utilisez l'option de ligne de commande -no-remote pour l'éviter.

Voir http://kb.mozillazine.org/Command_line_arguments