LINUX.ORG.RU

Emacs: подключать emacsclient к удаленному серверу

 ,


0

1

Приветствую, пытаюсь сделать следующее.

1) На сервере (пробовал Ubuntu-16.04.7, и RHEL-8.6) запущен emacs (GNU Emacs 24.5.1 либо GNU Emacs 26.1) в режиме демона:

emacs -nw --eval '(progn (setq server-use-tcp t) (setq server-host "192.168.0.179") (server-start))'

2) Демон создает файл соединения ~/.emacs.d/server/server, который я перенес на машину клиент

3) С машины-клиента (под macOS) запускаю emacsclient (GNU Emacs 28.2):

emacsclient -t -f /Users/cruz7/Documents/server
emacsclient: connected to remote socket at 192.168.0.179
*ERROR*: Could not open file: /dev/ttys001

После чего emacs-сервер сегфолтится:

Fatal error 11: Segmentation fault
Backtrace:
emacs[0x5036d3]
emacs[0x4e9d6e]
emacs[0x50249e]
emacs[0x5026c3]
/lib/x86_64-linux-gnu/libpthread.so.0(+0x11390)[0x7fea40621390]
/lib/x86_64-linux-gnu/libc.so.6(+0x9f60a)[0x7fea402e560a]
emacs[0x4ae693]
emacs[0x4aff80]
emacs[0x427864]
emacs[0x55d937]
emacs[0x592b23]
emacs[0x55d3af]
emacs[0x55d74b]
emacs[0x592b23]
emacs[0x55d3af]
emacs[0x55d74b]
emacs[0x592b23]
emacs[0x55d74b]
emacs[0x592b23]
emacs[0x55d74b]
emacs[0x55ce5c]
emacs[0x56026e]
emacs[0x593f2f]
emacs[0x55d74b]
emacs[0x55ce5c]
emacs[0x55ba8b]
emacs[0x593e70]
emacs[0x55d74b]
emacs[0x55ec6c]
emacs[0x55eed0]
emacs[0x55bccb]
emacs[0x596613]
emacs[0x59d369]
emacs[0x4f18c1]
emacs[0x4f539f]
emacs[0x4f63ed]
emacs[0x4f8150]
emacs[0x55bba7]
emacs[0x4ea13e]
emacs[0x55ba8b]
emacs[0x4ee817]
...
Segmentation fault (core dumped)

Т.е. emacs-сервер валится и в ubuntu и в RedHat дистре.

Возможно ли вообще сделать то, чего я хочу?

★★

Последнее исправление: cruz7 (всего исправлений: 1)

Не нашёл упоминаний, что режим tcp позволяет клиенту и серверу работать на разных машинах.

На одной машине сервер просто переоткрывает клиентский tty (код для его передачи я вижу в emacsclient.c), на разных машинах это могло бы работать разве что пробросом pty/tty через сокет (а такого кода я в emacsclient.c не вижу)

LeninGad
()
Ответ на: комментарий от LeninGad

Не нашёл упоминаний, что режим tcp позволяет клиенту и серверу работать на разных машинах.

И я видел кучу упоминаний, что Emacs такой режим не поддерживает.

А ТСу надо использовать TRAMP.

theNamelessOne ★★★★★
()