Режим Paramiko X11 с программированием на Python - PullRequest
1 голос
/ 15 декабря 2010

Мне не удается использовать модуль Python Paramiko, проходящий через его функции управления ssh X11.
Я хотел бы использовать его так, как если бы я использовал опцию ssh -X.
Я пробовал несколько решений, но ничегоработать в моей системе.

Вот код, который я пробовал:


client = paramiko.SSHClient()   
client.set_missing_host_key_policy(AutoAddPolicy())   
client.connect(machineName, username=xxx, password=xxx)  
t = client.get_transport ()  
chan = t.open_session ()  
chan.request_x11 ()  
chan.set_combine_stderr (True)  
chan.exec_command (xxxxx)  # the command that should display a X11 window  
bufsize = -1  
stdin = chan.makefile('wb', bufsize)  
stdout = chan.makefile('rb', bufsize)  
stderr = chan.makefile_stderr('rb', bufsize)  
for line in stdout:   
    print '... ' + line.strip('\n')  
client.close()  

Я также пытался (вместо команды exec_command):

chan.get_pty("vt100", 80, 50)  
chan.invoke_shell()  
chan.send(xxxxx) # the command that should display a X11 window  

К сожалению, мое приложение зависает в тот момент, когда обычно должно появиться окно X11.Примечание: если я запускаю команду без отображения окна X11, она работает отлично.

Спасибо за вашу помощь,
С уважением

Ответы [ 2 ]

1 голос
/ 16 октября 2012

Читая код paramiko, я понял, что paramiko реализует только способ установки канала x11.Он не подключает канал к локальному дисплею x11.Это оставлено вам.

Пожалуйста, посмотрите этот ответ для рабочего примера того, как это сделать: https://stackoverflow.com/a/12903844/72911

1 голос
/ 06 октября 2011

Мне нужно было использовать paramiko для запуска графического интерфейса в другом окне X11 и нашел этот пост.Я думаю, что вам может понадобиться добавить несколько строк, чтобы это работало.Это все о параметре обработчика.

Здесь назначьте функцию для входящих подключений X11.

chan.request_x11 (handler=testFunc())  

И напишите простое.из нового окна после этого.По крайней мере, у меня это работает.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...