У 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 створення табів
#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+”