это моя ситуация. Обычно я запускаю R
с Emacs
с помощью ESS
в эмулятор терминала на моем локальном компьютере. На моем рабочем месте мы получаем новый сервер под управлением R
, поэтому я бы использовал удаленный сервер через ssh
. Я подключаюсь через ssh
, и все работает хорошо. Что бы я сделал, так это поддерживать консоль R
, пока я закрываю свой ноутбук и возвращаюсь домой, поэтому из своего дома я бы снова подключился к существующей сессии R
. Я попытался поместить консоль R
в фоновом режиме, используя C-q C-z Enter
, чтобы остановить процесс, но, пока я закрываю ssh-соединение, процессы пропадают. Не повезло и с bg &
. Я также пробовал mosh
, но в этом случае я получаю некоторую проблему, связанную с трафиком UDP в сети моей работы. Screen
и tmux
также не очень полезны из-за их плохого взаимодействия с Emacs eshell
. На клиентском и серверном компьютере я запускаю Debian 8 xfce.Background R console и long running session
Есть ли способ сохранить терминал R при закрытии ssh-соединения? Каков ваш подход к длительным сеансам R?
EDIT
Наконец here и here я нашел SOLUTIO, что я ищу. Я пробовал тот же подход, что и в ссылке выше, но с использованием tmux, и я получаю много ошибок. Святой Грааль - это экран. Я попытался выполнить пошаговую процедуру, но я получаю сообщение об ошибке от emacs, пока я пытаюсь подключить сеанс экрана изнутри eshell. Поэтому я попытался использовать ansi-term вместо eshell, и все работает так, как ожидалось. Я могу прикрепить и отсоединить сеанс R. Таким образом, я использую машину удаленного сервера только для вычисления, в то время как R-скрипты находятся на моем ноутбуке. Итак, это работа потока:
ssh
на хост-сервер- старт
screen
сессия - начало
R
- отрывать
screen
- выход из сервера закрытия соединения SSH
- запустите
emacs
в качестве демона на вашей локальной машине и откройтеemacsclient
экземпляра (не обязательно пробег Emacs через emacsclient, но я предпочитаю этот путь) - открыть свой
R
сценарий - открыть
ansi-term
(M-x ansi-term
) ssh
к серверу изansi-term
- присоедините сессии экрана (
screen -r
) - подключите пульт дистанционного управления
R
к местномуR
сценарию (M-x ess-remote
) - для отсоединения от R изнутри с пользой в течение срока использования
Ctrl-q Ctrl-a d return
Thats it.Теперь я могу запустить удаленный процесс R
, используя локальный скрипт R
, закрыв соединение, но оставив открытую консоль R
, поэтому я могу снова подключиться к ней в будущем, также с другого IP-адреса.
Я запустил 'emacsclient -nw' в своем ноутбуке, я вызываю' eshell'l, а не 'ssh' на главный компьютер. Отсюда я начинаю сессию «R». На данный момент я не понимаю, как сохранить процесс 'R', пока я закрываю соединение' ssh' и как его снова присоединять. – Riccardo
Это совсем другой подход, как я изложил. В моем случае emacs живет на сервере (-ах) и остается в живых. Мои связи с ним приходят и уходят, но его сеансы сохраняются. Попробуй. –
ОК, теперь я понимаю. Я также использовал этот подход в прошлом, но я бы изменил его, просто чтобы сохранить файлы сценариев только в моем ноутбуке и использовать сервер только для вычисления. – Riccardo