Робота зі скринами.
Основи роботи з 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
При підключенні ми можемо використовувати числовий ідентифікатор процесу скрин або його ім’я.
Іноді, при виведенні списку ми можемо бачити, що до нього вже хтось підключений.
Щоб агресивно увійти та викинути користувача від туди, можна використовувати прапор -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"
Ми побачимо внизу додаткову панель.
Перейменувати поточну панель
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}]'
Запуск скринів та команд усередині них без використання .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+”