Работа со скринами.

Основы работы с Linux. -> Работа со скринами.

Работа со скринами.

В Linux команда screen позволяет создать отдельный терминал и запустить в нем программу в фоновом процессе, который не будет завершен если вы выходите из терминала.

Один раз создав скрин и запустив в нем программу вы можете потом в любой момент зайти на сервер и открыть нужный вам скринн и посмотреть на процесс выполнения.

Установка.

sudo apt install screen

Создание скрина.

screen -S screen-name

При этом вас сразу перебрасывает внутрь скрина.

Выход из скрина

ctrl-a d

При этом в начале нажимается комбинация ctrl-a, отпускается и отдельным нажатием клавиша d.

Другие полезные комбинации.

Ctrl-a k - выходит из скрина и удаляет его

Ctrl-a :multiuser on - создает мультисессионый скри, при этом после комбинации Ctrl-a необходимо набрать :multiuser on

Список всех команд, доступных после комбинации crl+a

crl+a ?

Просмотр активных скринов.

screen -ls

Подключение к скрину

screen -r screen-name
screen -r screen-PID

При подключении мы можем использовать числовой идентификатор процесса скрина или его имя.

Иногда, при выводе списка мы можем видеть что к нему уже кто то подключен.

start page

Чтобы агресивно войти и выкинуть пользователя от туда можно использовать флаг -D

screen -r -D screen-PID

Но со флагом +x вы можете зайти не выкидывая другого пользователя.

screen -r -D -x screen-PID

Несколько табов.

Если добавить в новый файл .screenrc домашней директории следующее

caption always "%{= kw}%-w%{= BW}%n %t%{-}%+w %-= @%H - %LD %d %LM - %c"

То мы увидим внизу дополнительную панель.

start page

Переименовать текущую панель

ctrl+a A и вводим имя

Для того, чтобы включить несколько вкладок добавим это в .screenrc

screen -t tab1
screen -t django
screen -t tab3
screen -t tab4

Переключаться между табами

ctrl+a номер-таба

Еще один вариант оформления статус-бара.

hardstatus alwayslastline
#hardstatus string '%{= kG}%-Lw%{= kW}%50> %n%f* %t%{= kG}%+Lw%< %{= kG}%-=%c:%s%{-}'
hardstatus string '%{= kG}[ %{G}%H %{g}][%= %{= kw}%?%-Lw%?%{r}(%{W}%n*%f%t%?(%u)%?%{r})%{w}%?%+Lw%?%?%= %{g}][%{B} %m-%d %{W}%c %{g}]'

start page

Запуск скринов и команд внутри них без использования .screenrc

Убираем из .screenrc создание табов

#screen -t tab1
#screen -t tab2
#screen -t tab3
#screen -t tab4

Запускаем скрин следующим образом.

$ screen -AdmS dev -t bash

-A - адаптирует размеры под экран

-d -m - запускает в фоновом процессе и НЕ бросает нас внутрь

-S - название сессии

Эта команда запустит сессию с одним табом где запустит bash, если этого не сделать то сессия не стартанет.

Запускаем команды

screen -S dev -X screen -t django ./bin/start_django
screen -S dev -X screen -t celery ./bin/start_celery

Просмотреть табы списком и потом выбрать нужный можно комбинацией Ctrl+A а затем Shift+”

start page