screen: автоматическое создание или повторное подключение сеансов в разных конфигурациях

Что является чистым способом достижения, следуя функциональным возможностям:

function screen_create_or_reuse(){ if [ running_screen_session "$1" ]; then reattach_screen_session screen_name_"$1" else create_screen_session "$1" screen_config_"$1" screen_name_"$1" fi } 

В настоящее время мне приходится беспокоиться, если сеанс уже запущен ( screen -ls или screen -wipe ). В зависимости от этого, если он не запущен: создайте сеанс с настраиваемой конфигурацией и именем вручную ( screen -c config -S name ) и повторите попытку вручную. Мне screen_create_or_reuse name одна команда screen_create_or_reuse name которая обрабатывает все эти детали.

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

Какой чистый способ достичь выше, с экраном?

  • Как остановить окна приложений от перехода на рабочее пространство после подключения двух мониторов?
  • Как назначить ключевой ярлык для перемещения рабочих пространств GNOME 3 вверх / вниз?
  • Окна Compiz + MATE переходят в предыдущее рабочее пространство
  • Открытие приложений на другом рабочем столе из командной строки
  • Как закрыть все приложения в рабочей области?
  • Лучшая индикация переключения рабочей области Linux Mint
  • Время переключения рабочего пространства Linux Mint
  • Переименование рабочих областей в интерактивном режиме с помощью DynamicWorkspaces не работает
  • 2 Solutions collect form web for “screen: автоматическое создание или повторное подключение сеансов в разных конфигурациях”

    Следующий параметр man screen :

      -d -R Reattach a session and if necessary detach or even create it first. 

    Используйте его с -S для установки имени сеанса.

    По большей части -S foo -d -RR будет делать то, что вы хотите: он присоединяется к сеансу, имя которого вы указываете, и создает его, если оно уже не существует.

    Мне нравится идти немного дальше и искать файлы конфигурации, зависящие от имени. Это позволяет мне определять разные переменные среды, приложения запуска и т. Д. Для разных имен сеансов.

    Это мой файл etc/screen/0.screenrc , который предоставляется другими конфигурационными файлами, специфичными для сеанса:

     source ~/.screenrc unsetenv DISPLAY msgminwait 0 msgwait 0 screen -t post_initialization 39 sh -c 'sleep 1; screen -X msgwait 5; screen -X msgminwait 1' 

    Это пример файла конфигурации сеанса etc/term/emacs.screenrc , который запускает одно окно с Emacs (больше не полезно с Emacs 23, которое может подключаться к нескольким терминалам).

     sessionname emacs source 0.screenrc screen -t emacs emacs -nw 

    И это адаптированная версия сценария, который я использую для вызова этих сеансов. Назовите его, например, scr emacs чтобы выбрать сеанс, показанный выше. Если в файле ~/etc/screen нет файла конфигурации, соответствующего имени сеанса, я запускаю оболочку.

     #!/bin/sh session_name=$1; shift if [ -r "$HOME/etc/screen/$session_name.screenrc" ]; then exec screen -S "$session_name" -d -RR -c "$HOME/etc/screen/$session_name.screenrc" "$@" else if [ $# -eq 0 ]; then set "$SHELL"; fi exec screen -S "$session_name" -d -RR -c "$HOME/etc/screen/0.screenrc" "$@" fi 
    Interesting Posts

    Неограниченный интерфейс в Linux?

    Что определяет тип данных журнала, который идет в local1, local2, ect?

    Как использовать sed для замены ключей в файле с помощью регулярного выражения?

    Command 'date + FORMAT' – Что такое% a,% A,% b и т. Д.?

    Измените переменную среды PATH моего профиля на Cygwin

    Как увеличить нет. потоков nfsd в WD моем облаке (nfs server)? для лучшей производительности

    CentOS 7.2 (теперь для обновления)

    Synergy больше не работает после блокировки экрана (LightDM)

    Сценарий Bash для получения всего mp3-файла с html-страницы

    Открыть сеансы Konsole (вкладки) в двух обособленных окнах

    Как установить пакет PySide для CentOS 7

    Существуют ли какие-либо автономные руководства для специальных символов, используемых в терминале?

    Как cd открыть / автозаполнять папку, которая заканчивается определенной фразой

    Команда grep для извлечения только определенного слова

    В каком случае я могу использовать опцию «–nodeps» команды rpm?

    Linux и Unix - лучшая ОС в мире.