17

Я часто использую экран GNU. Я нахожу очень раздражающим, что каждый раз, когда сервер должен быть перезагружен, я теряю все свои сеансы (даже если я знаю заранее, мне нужно настроить все заново).

Я искал в интернете возможности, как сделать экран выжившим после перезагрузки, но не нашел ничего, что бы мне помогло. Некоторые методы, которые я нашел, и есть недостатки:

  • CryoPID: кажется мертвым, обещая с 2005 года включить поддержку экрана
  • DMCTP: есть проблемы с setuid(), у меня не работает (признаюсь, я не очень старался)
  • какой-то скрипт пытается воссоздать сессию с нуля; Вы все еще теряете свою историю, и я думаю, что переменные окружения также установлены неправильно (и когда я пытался, это не вызывало все сессии)

Может, кто-нибудь знает какой-нибудь лучший процесс морозильной камеры? Это кажется наиболее перспективным способом.

3 ответа3

13

Нет способа сохранить сеанс экрана так, как вы хотите. То, что я сделал, было следующей лучшей вещью: скриптовал autossh для подключения к моим серверам и настраивал мою установку так, как мне нравится.

Любить это.

Локальное соединение отключено, я жду, оно восстанавливается и у меня есть работа (я использую вложенные экраны). Сервер выключен или перезагружен, я жду и вернусь в положение по умолчанию. Это дает мне чувство преемственности, которое я желал.

Во всяком случае, я задал этот точный вопрос несколько лет назад в списке экрана.

Резюме: не ищи вечную жизнь за экраном. Вместо этого учитесь воскресать.

Это основная часть конфигурации .screenrc:

В пакете autossh, который я изменил в программе econnect, есть пример rscreen.

Параметр --esc должен установить удаленное экранирование на что-то другое (мое экранирование `)

#add much much more scrollback
defscrollback 10000

# make some default windows

screen -t ADMIN     1
chdir /Users/chiggsy/Sites/
screen -t SITES    2
chdir /Users/chiggsy/src/
screen -t SRC 3
chdir
screen -t FERGUS  4 /Users/chiggsy/bin/econnect --host host.example.com --port 50000 --esc g --user sol
screen -t LAEG 5  /Users/chiggsy/bin/econnect --host host.example2.com --port 505000  --esc g --user invictus

screen -t ROOT      0   sudo su -m
1

Смотрите: http://skoneka.github.io/screen-session/

Available screen-session modes: 

---- 
save              - save Screen ( and VIM ) session 
load              - load session 
ls                - list saved sessions 
---- 

dump              - print detailed informations about windows in the session 
group             - move windows to a group 
layoutlist        - display a list of layouts 
layout-checkpoint - record a snapshot of the current layout. 
layout-history    - display saved snapshots of the current layout 
layout-redo       - load a snapshot of the current layout, 
layout-undo       - load a snapshot of the current layout, 
layout-zoom       - zoom into and out of a region 
kill              - send SIGTERM to last the process started in a window 
kill-zombie       - kill all zombie windows in the session 
kill-group        - recursively kill all windows in a group 
manager           - sessions manager (screenie like) but featuring session 
                    preview in a split window 
nest-layout       - copy a layout to the current region 
new-window        - start a new Screen window in the same working directory 
                    on the position next to the current window 
name              - get or set the sessionname 
regions           - display a number in every region (like tmux display-panes) 
renumber          - renumber windows to fill gaps 
subwindows        - recursively print windows contained in groups 
1

При сбое сервера тот же вопрос получил одну подсказку, которая здесь отсутствует: используйте tmux с tmux-resurrect, а именно:

Восстановите среду [s] tmux после перезагрузки системы.

Что он может восстановить для вас:

  • все сеансы, окна, панели и их порядок
  • текущий рабочий каталог для каждой панели
  • точное расположение панелей в окнах (даже при увеличении)
  • активный и альтернативный сеанс
  • активное и альтернативное окно для каждой сессии
  • окна с фокусом
  • активная панель для каждого окна
  • "сгруппированные сессии" (полезная функция при использовании tmux с несколькими мониторами)
  • программы, работающие на панели! Подробнее в восстанавливающих программах док.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .