Emacs в качестве альтернативы screen/tmux - отсоединить от терминала

Хорошо известно, что emacs можно использовать в качестве эмулятора терминала (в то время как он сам работает в терминальном эмуляторе), что делает его допустимой альтернативой более традиционным терминальным терминалам в терминах, например tmux или screen. Тем не менее, есть одна вещь, которая может быть легко выполнена с последним, и я не нашел альтернативы в emacs term для этого пока.

Оба tmux и screen могут отсоединяться от терминала, и все задачи, запущенные в их окнах, продолжают работать в фоновом режиме. Он выполнялся с использованием C-b, d в tmux и C-a, d in screen по умолчанию. Позже я могу вернуться (вернуться) к терминалу, от которого я отсоединился, запустив что-то вроде tmux attach или screen -r. Кроме того, сеансы, выполняемые в обоих этих терминальных мультиплексорах, являются постоянными, т.е. Если я подключен к удаленному терминалу, а соединение терпит неудачу, я могу повторно подключиться и подключиться к терминалу, не потеряв ни одной из моих работ - это действительно помогает в случае неисправности сети ссылка, которая иногда прерывает ssh-соединения.

Есть ли что-то подобное для emacs? В принципе, я хотел бы иметь возможность:

  • Отсоедините от emacs и оставьте его в фоновом режиме, все подпроцессы, запущенные в буферах term, не повреждены.
  • Повторите попытку позже и найдите все мои процессы.
  • Автоматическое отключение emacs от терминала при получении SIGHUP.

Ответы

Ответ 1

Использовать демон emacs:

$ emacs --daemon

Затем просто запустите новый фрейм, эквивалентный для screen -x:

$ emacsclient -t