Я запускаю сервер Jupyter на своем удаленном сервере с nohup jupyter lab --no-browser --port 1234 $
и использую пересылку X11 для доступа к программам графического интерфейса на удаленном сервере .
Но номер $ DISPLAY
Jupyter Server - это та самая текущая оболочка, в которой был запущен Jupyter Server. Например, пользователь
входит на удаленный сервер через ssh
, назовем его user_shell1 @ remote
, предположим, что номер ДИСПЛЕЯ localhost: 10.0
. Если тот же пользователь
использует вторую оболочку для входа на удаленный компьютер, то для user_shell2 @ remote
номер ДИСПЛЕЯ будет localhost: 11.0
, что означает тот же пользователь во второй оболочке не может использовать Jupyter Server для запуска программ с графическим интерфейсом пользователя из-за несогласованности среды $ DISPLAY
.
Поскольку я запускаю некоторые программы квантовой химии, которые должны работать на сервере в течение длительного периода времени, я не хочу каждый раз перезапускать Jupyter Server, и я хочу получить доступ к графическому интерфейсу Jupyter Server как дома, так и в моем офисе с двумя ПК.
Вот результат xauth list
(base) [user@node01 ~]$ xauth list
node01/unix:15 MIT-MAGIC-COOKIE-1 849739cabda5e7e974a5ef9dd448f864
node01/unix:10 MIT-MAGIC-COOKIE-1 6016f581849916680257ef82ff73582e
node01/unix:11 MIT-MAGIC-COOKIE-1 35df3ba83b9cc86654ff324964dc89d0
node01/unix:12 MIT-MAGIC-COOKIE-1 4418caa4a79c693da602c37e08202da5
На самом деле все «пользователи» с 10 по 12 - это одна и та же учетная запись, но доступ к удаленному серверу на разных локальных машинах, можно ли установить всех этих «пользователей» "номера $ DISPLAY, чтобы эти номера $ DISPLAY совпадали с номерами запущенного Jupyter Server.
Или есть какой-либо другой способ получить доступ к графическому интерфейсу без перезапуска сервера Jupyter на разных локальных машинах?
Как предложил @meuh, я публикую здесь свой ответ. Магические команды Jupyter могут сбрасывать переменные среды ноутбука без перезапуска сервера Jupyter .
Итак, здесь я просто использую % set_env DISPLAY localhost: 11.0
для сброса переменной DISPLAY env в соответствии с текущей оболочкой входа в систему, и я могу запускать программы с графическим интерфейсом пользователя в ipython notebook без перезапуска Jupyter Server.