Не удается правильно выйти из сеанса SSH с активным IPython / Matplotlib в Tmux - PullRequest
0 голосов
/ 03 мая 2018

У меня возникла проблема, при которой попытка отсоединить удаленный активный сеанс IPython (через Tmux) с импортированным matplotlib, а затем выход из SSH зависает. Я должен Crtl-C, чтобы убить процесс. Когда я возвращаю SSH в машину, процесс tmux прекращается.

Пример IPython:

~$ ssh-desk # ssh into remote machine
~$ tmux
~$ ipython
In [1]: import matplotlib.pyplot as plt
Crtl-b Crtl-b d
[detached (from session 0)]
~$ tmux ls
0: 1 windows (created Wed May  2 16:52:58 2018) [78x38]
~$ exit
logout
(process hangs here)
Ctrl-c
~$ ssh-desk
~$ tmux ls
no server running on /tmp/tmux-1000/default

Однажды я получил сообщение об окончании сеанса X11. Я думаю, это потому, что я использую ssh -Y для пересылки X11 для графики.

The X11 connection broke (error 1). Did the X11 server die?

Есть ли способ запустить matplotlib в IPython / Python и успешно отключить сеанс tmux и выйти из системы?

Я работаю на Linux Mint 18.3 (как на локальной, так и на удаленной машине), IPython 6.3.1

UPDATE Я нашел все потенциальные решения для отключения сеансов tmux с переадресацией X11 и не смог заставить его работать, включая помещение некоторого кода DISPLAY в файл .bashrc. Я также попытался использовать xpra, но получил ошибку, что не удалось найти код перекодировки модуля.

1 Ответ

0 голосов
/ 03 мая 2018

Вы всегда можете вернуться к escape-последовательностям ssh:

sequence | description
-------- | -----------
 ~.      | terminate connection (and any multiplexed sessions)
 ~B      | send a BREAK to the remote system
 ~C      | open a command line
 ~R      | request rekey
 ~V/v    | decrease/increase verbosity (LogLevel)
 ~^Z     | suspend ssh
 ~#      | list forwarded connections
 ~&      | background ssh (when waiting for connections to terminate)
 ~?      | this message
 ~~      | send the escape character by typing it twice

Как только вы окажетесь в tmux и если вы просто хотите разорвать ваше ssh-соединение, введите, например:

~.

Затем вы можете снова подключиться к серверу и выполнить команду: tmux attach

...