Запуск программ в оболочке Screen

Status
Not open for further replies.

Juzilkree

Злостный отаку
Staff member
Администратор
Nov 29, 2012
1,983
744
158
38
www.dyndev.ru
И так. Этот так сказать гайд посвящается всем тем кто до сих пор запускает сервер через MC(Midnight Commander), после чего дожидается прогрузки сервера и после чего закрывает консоль.

Знаю что похожая тема уже была.
»Краткое руководство по работе в screen (screen console)
Будем считать это продолжением.

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

Начнём с установки этого самого screen'a
Code:
apt-get install -y screen
Дожидаемся окончания установки... Дождались? Отлично, идём дальше.

Для того что бы открыть сессию в screen вводим следующее
Code:
screen
Жмём энтер "ENTER" и видим следующее
2013-04-14-16-42-49.jpg
Теперь жмём пробел. "SPACE".
Поздравляю, вы в screen'e!

Далее действуют все те же команды что и в обычном терминале(консоли).
Запустим сервер.
Для этого перейдём в директорию с вашими скриптами запуска. Наш сервер находится в директории /home.
Code:
cd /home
Перешли... Теперь запустим сервер.
Code:
./start.sh
Сервер запускается... Теперь мы может как-бы свернуть окно screen'a и заняться другими делами.
Для того что бы сделать это, нужно нажать по порядку и не отпускать кнопки
Code:
CTRL A D
После вы увидите следующее
2013-04-14-17-13-44.jpg
Это название screen'a
Code:
6762.pts-2.pw
У вас оно может отличаться от моего.
Вообщем мы свернули окно с запуском сервера но сам сервер продолжает загружаться.

Для того что бы вернутся в окно с сервером, вводим следующее
Code:
screen -r 6762
Жмём ентер "ENTER".
Вуаля! Мы сного попали в то самое окно в котором идёт загрузка сервера или может уже всё прогрузилось.

Ещё 1 способ запуска сервера в оболочке screen
Создадим .sh файл и назовём его например pwscreen.sh
Откроем его блокнотом (Notepad++) и пропишем следующее
Bash:
#!/bin/sh
screen -d -m -A -S pwserver
cd /home/
./start.sh

2 строка : запустит screen,
-d -m = запуск сессии в detatch режиме.
-A = подгоняет размер окна под размер текущего терминала.
-S pwserver = устанавливает имя для данной сессии.

3 строка : переходим в директорию с сервером и скриптами запуска.
4 строка : запускаем сервер.

Далее заливаем созданный файлик (pwscreen.sh) в директорию /home/.
И теперь для запуска сервера в screen'e нам нужно просто
Открыть терминал.
перейти в директорию /home/
Code:
cd /home
и запустить созданный нами файл
Code:
./pwscreen.sh

Для того что бы посмотреть как себя чувствует наш сервер вводим следующее
Code:
screen -r pwserver

На этом всё.
Надеюсь я что нибудь забыл :whistle:


update 4akN

screen -ls покажет список запущенных сессий скрина пользователя
Если сессия всего одна подключиться к ней можно без указания имени, просто screen -r
Чтобы отключить клиента от сессии screen -D [имя_сессии]
CTRL+A C
- создать новую вкладку в текущей сессии
CTRL+A P - переключиться на предыдущую вкладку
CTRL+A N - переключиться на следующую вкладку
CTRL+A K - убить текущую вкладку
 
Last edited:

vovansuz

Пользователь
Пользователь
Apr 22, 2012
37
27
18
28
Добавлю не много от себя.
Команды:

screen – запустить с параметрами по умолчанию;
screen -S — запустить с определенным именем «name»;
screen -U — запуск в режиме UTF-8;
screen -ls — посмотреть существующие скрины с названиями и состоянием (выводиться в виде: pid.tty.host, «attached»- работают, «detached»- нет, «dead»- мертвые);
screen -wipe — удалить «мертвый» сеанс;
screen -r — подключиться к скрину;
screen -r name — подключиться к определенному скрину с именем «name» (можно указывать несколько начальных букв);
screen -R [name] — присоедениться, а если он не существует, то создать;
screen -x [name] — подключиться к определенному активному скрину с именем «name», т.е. к которому на данный момент уже присоединены с другой сессии.

Чтобы не возиться с вышеописанными командами можна использовать следующую команду для удаленного доступа по SSH:
ssh -t login@host screen -Rd — после входа на сервер сразу попадаем в запущенный скрин, а если такового нет, то он создастся. Если в это время к существующему уже с другого места присоединены, то там просто произойдет отключение.
ssh -t login@host screen -RD — отличие в том, что в другой сессии не только будет отключение от скрина, а и logout из самой ssh-сессии.

Клавиши:

Регистр, как обычно в *nix-системах, имеет значение; Ctrl+a – это управляющая комбинация клавиш и после нее идет какая-либо клавиша.
Ctrl+a space — переключиться на след. окно в сеансе;
Ctrl+a c — создать новое окно;
Ctrl+a A — назвать текущее окно;
Ctrl+a " (шифт и русская э на английской раскладке) — посмотреть список окон с возможностью переключения в какое-либо из них;
Ctrl+a ‘ — переключиться на определенное окно по названию или номеру;
Ctrl+a [0-9] — переключиться на соответствующее окно (нумерацию можно посмотреть с помощью Ctrl+a «);
Ctrl+a a — переключение между двумя последними окнами;
Ctrl+a n — переключиться на следующее окно;
Ctrl+a p — на предыдущее, также можно использовать BackSpace, вместо символа p;
Ctrl+a d — отсоединиться от screen;
Ctrl+a Esc — переводит screen в «режим копирования». Становиться доступным передвижение по экрану (кстати, работают комбинации клавиш перемещения, как в VIM-e или less, в том числе и поиск – «/»);
Ctrl+a M — слежение за активностью (сработает при появлении новой информации);
Ctrl+a _ — для слежения за бездействием (сработает при прекращении поступления информации в терминал);
Ctrl+a * — показать список всех подключенных сейчас дисплеев.
 
  • Like
Reactions: Merfy and 4akN

MKamois

Пользователь
Пользователь
Jun 5, 2012
101
6
18
38
А как убить скрин? Не заходя на него.
-d|-D [pid.tty.host]
не запускает новый сеанс, а отключает вместо этого уже запущенный ранее. Достигается тот же эффект, что и в с случае нажатия клавиш "C-a d" на управляющем терминале screen. Ключ -D эквивалентен ключу power detach. Если ни к одному сеансу нельзя обратиться, опция игнорируется.
 
Status
Not open for further replies.

Members online

No members online now.

Latest resources

Forum statistics

Threads
3,852
Messages
21,330
Members
7,963
Latest member
xiaosida